Just nu i M3-nätverket
Gå till innehåll
MvS

Userform som är kopplat till tabelluppgifter

Rekommendera Poster

MvS

Goddag därute i forumet!

Har ett litet projekt som jag behöver hjälp med. Jag har skapat ett medlemsregister i Excel för en förening. Medlemsuppgifterna har jag importerat från ett annat webbaserat program som kommer att upphöra inom kort. Problemet är att Excel-arket blir så stort med många kolumner från importen och jag skulle behöva presentera utdrag ur detta vi en userform i VBA. Jag har kommit så långt att jag designat formuläret (se bild)

post-61415-0-69789800-1397734401_thumb.png

Jag har tidigare jobbat en hel del i MS Access och designat formulär men då via designverktyg där. Jag har förstått att jag måste koppla VBA-kod till formuläret, men hur gör jag det? Min tabell på Excelfliken är designat så att kolumnerna står som fält och raderna som poster (precis som i access). Finns där någon vänlig och kunnig person som kan tipsa mig om någon VBA kod så att man kan söka i tex "Verksamhetsnamn" och sedan få övriga fält ifyllda från den posten?

 

Med hopp om svar!

 

//Magnus

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Monshi

Ja du, det är blir ren VBA-kod.

Är tabellerna formaterade som tabeller, alltså nyttjar Excels tabellformat eller är den redan listor?

 

Enklast är nästan att på bladet med tabellen att där skapa en funktion som hämtar data ur tabellen och en som skriver till tabellen, uppdaterar eller lägger till data.

Antingen att man anropar med ett unikt ID för att hitta fältet eller att man söker reda på raden och skickar raden till funktionen. Detta plus namnet på den kolumn man vill få data ifrån.

 

Exempelvis

Function GetValue(ID As Integer, strColumn As String) As Variant
    Dim c As Range
    With Me.ListObjects("Tabell1")
        Set c = .ListColumns("ID").DataBodyRange.Find(ID, lookat:=xlWhole)
        If c Is Nothing Then
            GetValue = 0
            Exit Function
        End If
    
        GetValue = .ListColumns(strColumn).DataBodyRange.Cells(c.Row - .HeaderRowRange.Row, 1)
    End With
End Function

Sub PutValue(ID As Integer, strColumn As String, data As Variant)
    Dim c As Range
    With Me.ListObjects("Tabell1")
        Set c = .ListColumns("ID").DataBodyRange.Find(ID, lookat:=xlWhole)
        If c Is Nothing Then
            Set c = .ListRows.Add.Range.Cells(1, 1)
            .ListColumns("ID").DataBodyRange.Cells(c.Row - .HeaderRowRange.Row, 1) = ID
        End If
        .ListColumns(strColumn).DataBodyRange.Cells(c.Row - .HeaderRowRange.Row, 1) = data
    End With
End Sub

som du kan anropa med


PutValue 4, "Värde", 1
 Debug.Print GetValue(4, "Värde")

Man kan visserligen ha dessa anrop direkt i modulen men det blir enklare att koda med genom att lägga in detta gränssnitt.

 

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
MvS

Ja du, det är blir ren VBA-kod.

Är tabellerna formaterade som tabeller, alltså nyttjar Excels tabellformat eller är den redan listor?

 

Enklast är nästan att på bladet med tabellen att där skapa en funktion som hämtar data ur tabellen och en som skriver till tabellen, uppdaterar eller lägger till data.

Antingen att man anropar med ett unikt ID för att hitta fältet eller att man söker reda på raden och skickar raden till funktionen. Detta plus namnet på den kolumn man vill få data ifrån.

 

Exempelvis

Function GetValue(ID As Integer, strColumn As String) As Variant
    Dim c As Range
    With Me.ListObjects("Tabell1")
        Set c = .ListColumns("ID").DataBodyRange.Find(ID, lookat:=xlWhole)
        If c Is Nothing Then
            GetValue = 0
            Exit Function
        End If
    
        GetValue = .ListColumns(strColumn).DataBodyRange.Cells(c.Row - .HeaderRowRange.Row, 1)
    End With
End Function

Sub PutValue(ID As Integer, strColumn As String, data As Variant)
    Dim c As Range
    With Me.ListObjects("Tabell1")
        Set c = .ListColumns("ID").DataBodyRange.Find(ID, lookat:=xlWhole)
        If c Is Nothing Then
            Set c = .ListRows.Add.Range.Cells(1, 1)
            .ListColumns("ID").DataBodyRange.Cells(c.Row - .HeaderRowRange.Row, 1) = ID
        End If
        .ListColumns(strColumn).DataBodyRange.Cells(c.Row - .HeaderRowRange.Row, 1) = data
    End With
End Sub

som du kan anropa med

PutValue 4, "Värde", 1
 Debug.Print GetValue(4, "Värde")

Man kan visserligen ha dessa anrop direkt i modulen men det blir enklare att koda med genom att lägga in detta gränssnitt.

 

Tack för svar Monshi!

 

Eftersom jag inte är en hejare på VBA förstår jag inte riktigt hur jag skall göra. Men jag har lagt "Function GetValue..." i Blad 1:s objekts kodruta i VBA editorn och "Put Value..." i en egen modul (Modul 1).

Hur kopplar jag sedan userform till koden och formuläret till en sökknapp på själva Excelarket? Det finns inget alternativ då jag försöker koppla makro till knappen...

 

//Magnus

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Monshi

tanken är att du lägger dessa på bladet där du har tabellen som du vill att ditt UserForm ska använda sig av.  Anpassa tabellnamnet så att det blir rätt, att det blir samma som på bladet.

(eller så generaliserar du lite till och skickar tabellnamnet även till funktionen)

 

Varför dessa funktioner? Jo för att det blir enklare programmeringsmässigt i nästa steg, att hämta/skriva data, enklare anrop.

I ditt UserForm, när du vill populera data i det

Me.TextBox1.Text = Blad1.GetValue(id, kolmumnnamn)

 

Och när du vill spara

Blad1.PutValue id, kolumnnamn, Me.TextBox1.Text

 

En liten detalj, när du hämtar första värdet, kontrollera att du får något tillbaka. Funktionen GetValue returnerar noll om inget hittas, kan ändras till annat värde.

 

En till detalj. Jag har satt ID till en integer. Om text eller annat bara att ändra typen av variabel, Variant om funktionen ska göra helt generell.

Ja, se boken jag bifogar. Ett litet exempel. Zippad eftersom eforum inte gillar xlsm-filer, makroaktiverade filer.

 

 

 

 

 

 

UserForm-List.zip

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
MvS

Tack Monshi!

 

Jag rör mig just nu i ett okänt rum och försöker höja mitt kunskapstak bit för bit! :huh:  

Eftersom jag har jobbat en del med Access där man helt enkelt pekar en kontrolls egenskap mot ett fält i en tabell så måste jag skruva om lite i tänket här. 

  • Vad använder jag för variabeltyp om jag tex vill söka en textsträng (typ "Verksamhetsnamn" eller "Efternamn") i stället för heltal (Integer) i Dim?
  • Hur koppla resp textfält i userform mot VBA-koden? Är det bara copy/paste från ditt exempel fast med utbytta kontrollnamn? (Jag antar att det sker i kodrutan för formuläret)
  • Hur kan jag anropa formuläret i själva Exceltabellen, dels om jag har en knapp ("Koppla makro...", eller??), dels om jag vill det öppnar automatiskt?

//Magnus

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Monshi

I Excel kan man inte koppla på det vis du menar, du får göra allt i VBA. Dvs hålla ihop det, hämta och skriva data via kod.

 

Om du vill använda strängar byt till String (PutValue och GetValue) och då kan du skippa konverteringen som jag gör från Textbox.text till Int.

 

Koppla ihop textbox med rätt kolumn. Tja, några sätt finns.

1: Kanske döpa textboxen till samma namn som kolumnen. Eller snarlikt.

2: Skapa ett Dictionary där du sparar textboxens namn och tabellens namn.

3: Skapar en tabell där du slår upp.

4: Du hårdkodar rakt av i koden.

 

Enklast är att köra enligt alternativ fyra, följa modellen i mitt exempel  i filen, bara bygga på.

OM kolumnnamn ändras i tabellen då kommer VBA-koden generera fel.

Och ja, den här koden ska finnas i formuläret som i mitt exempel.

 

Anropa formuläret?

myUserForm.Show

Antingen via en knapp och funktion kopplad till denna (börja med det) eller.... det tar vi senare.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
MvS
Postad (redigerade)

Tack Monshi för ditt engagemang!

Dina kunskaper i ämnet vida överstiger mina och jag har lite svårt att sortera ut vad som skall vara vart. Som jag ser har jag tre olika kodytor jag kan arbeta med i VBA i projektredigeraren:

  1. Blad1 (Arbetsbokens VBA)
  2. Formuläret (både kod och grafisk yta)
  3. Moduler

post-61415-0-28162400-1398148797_thumb.png

Dessutom har jag själva Bladfliken i Excels arbetsbok där själva tabellen med alla medlemsdata står. Har jag förstått rätt att jag skall lägga den kodsekvens du var så vänlig och bifogade ovan (Function GetValue... osv.) i kodytan för Blad1? 

Hur kodar jag de respektive textrutorna i formulärets kodyta så att de kommunicerar med tabellen (Tabell 2) i bladfliken (Blad1)?

post-61415-0-84630300-1398148393_thumb.png 

Lyckades dock lägga in formuläranropet (i Modul 1) och koppla det till en knapp på Blad1 så att det nu fungerar hjälpligt. Däremot behöver jag centrera formuläret mot arbetsytan i blad1 - hur går det till?

 

Ja, som du ser är jag lite trög i att fatta hur VBA knackas effektivt även om jag är dig tacksam att du har tålamod och tar dig tid med detta!  :huh: 

 

//Magnus

Redigerad av MvS

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Monshi

Berättar inte mitt lilla exempel det för dig?

Nåja, kan du något om objektorienterad programmering?

De kodblad du har är

Bladets - det är kopplat till arbetsblad  i boken. Betraktakt som ett objekt ska alla dess interna funktioner och alla dess egenskaper hanteras på detta blad. Det vill säga det som är direkt kopplat till detta blad ska stå här.

 

UserForms. Samma där, är detta UserForms kod och enbart dess kod. Den kod som behövs för att få det att fungera, hämta data, spara data.

 

Moduler. Fria kodmoduler. Där kan man placera lite mer allmän kod, kod som kanske flera andra blad/moduler nyttjar. Givetvis KAN man placera även den kod jag visat ovan på dessa men det riskerar snarast att röra till det.

 

Class. Du kan skapa en egen objektklass (eller ärva och utöka annan). Inget du behöver bekymra dig om. Fast rent generellt kan man säga:

Om du har en tabell på varje blad, du vill ha dessa spara-funktioner på varje blad, skapa en klass som ärver Worksheet, lägg in dessa funktioner (med lite anpassning) och koppla ihop dina arbetsblad med denna klass....

 

Korta svaret

Get/Put ska stå på bladet med tabellen. På det blad där du har den tabell som det ska hämtas/sparas värden i.

 

Anropen till dessa funktioner ska ske från ditt Userform

Get när du ska fylla ditt UserForm med värden

Put när du ska spara.

Helt enkelt, stega igenom alla kontroller. ta en titt på mitt exempel, boken jag bifogade.

 

Kanske behövs en till funktion, Remove(), som raderar/tar bort en rad.

 

Centrera/placera ditt UserForm.

När ditt formulär öppnas/initieras kör något i stil med

    Me.Left = Application.ActiveWindow.Width / 2
    Me.Top = Application.ActiveWindow.Height / 2

Me - refererar till det objekt koden är skriver på. I detta fall ditt UserForm.

Application refererar till Excel, den instans som kör formuläret.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
MvS

Hej!

Du har nog fått en utmaning i detta! Jag har jobbat lite med SQL (i MS Access) och en del html, fast jag är ingen fantom på kodning som du märker. 

Jag fattar fortfarande inte var de olika kommandona skall ligga! Har försökt minutiöst följa ditt kodexempel men det går smått med framgången därvidlag! Jag förstår visserligen vilka kodytor du talar om men inte hur de olika anropen hänger ihop gentemot varandra! Så här ser mitt formulär ut:


Private Sub Label1_Click()

End Sub

Private Sub Label10_Click()

End Sub

Private Sub Label3_Click()

End Sub

Private Sub foretag_Change()

End Sub

Private Sub Label5_Click()

End Sub

Private Sub Rubrik_Click()

End Sub

Private Sub cbFind_Click()
Dim id As String
    On Error Resume Next
    id = Me.tbCompany.Text * 1
    On Error GoTo 0
    If Me.tbCompany.Text = "" Or Blad1.GetValue(id, "Företag") = 0 Then
            MsgBox "Ange ett existerande företagsnamn för att hämta.", vbCritical, "Fel"
            Exit Sub
    End If
 
End Sub

Private Sub tbPostAddress_Change()
Me.tbPostAdress.Text = Blad1.GetValue(id, "Adress")
End Sub

Private Sub tbPostPostcode_Change()
Me.tbPostPostcode.Text = Blad1.GetValue(id, "Postnummer")
End Sub
Private Sub tbPostCity_Change()
Me.tbPostCity.Text = Blad1.GetValue(id, "Ort")
End Sub
Private Sub tbSurname_Change()

End Sub

Private Sub UserForm_Click()

End Sub

Private Sub Stängknapp_Click()
Unload Me
End Sub

Private Sub UserForm_Show()
    
End Sub

Min tabell heter "Tabell2" och har sina headers på rad 4 och dataintervallet sträcker sig i nuläget från B5 till V134. 

 

Fattade heller inte var någonstans du tycker jag skall placera:

Me.Left = Application.ActiveWindow.Width / 2 
Me.Top = Application.ActiveWindow.Height / 2

för att centreringen av formuläret skall ske...

Sorry Monshi, men jag är lite vilsen i detta - orkar du hjälpa mig ytterligare eller får jag söka kunskap annorstädes?

 

//Magnus

 

 

     

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Monshi

Vi ska nog lyckas reda ut detta.

Vi tar det där med att hämta/skriva data.

jag antar att användaren ska göra ett val som triggar en uppdatering av värdena respektive att värden ska sparas.

1: Skapa en subrutin, en funktion, vars enda uppgift är att spara data och en vars uppgift är att hämta data. Alla data, stega igenom alla fält som ska sparas/hämtas.

2: Du har en händelse som ska fyra av, anropa rätt funktion (ur 1) vid händelsen. Exempelvis att användaren anger ett ID och trycker SÖK eller att användaren trycker på Spara.

 

Koden - i UserForm.Show exempelvis, eller UserForm.Intialize

 

Din kod, du har lagt att den ska hämta data till en textbox när denna box ändras? Det blir lite bakvänt. Som sagt, samla alla hämta/spara data i en rutin

 

 

Exempel, ska ligga i ditt UserForm

Sub UpdateForm(id As String)
    Me.tbPostPostcode.Text = Blad1.GetValue(id, "Postnummer")
    Me.tbPostCity.Text = Blad1.GetValue(id, "Ort")
End Sub

Sub SaveData(id As String)
    Blad1.PutValue id, "Postnummer", Me.tbPostPostcode.Text
    Blad1.PutValue id, "Ort", Me.tbPostCity.Text
End Sub

Stega igenom alla fält som ska hämtas/sparas.

är du med nu?

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
MvS

Tack för ditt tålamod!

Funktionen är att söka i tabellen efter medlemsdata och att i förekommande fall kunna uppdatera denna. Jag vill på detta sätt emulera MS Access möjligheter att använda ett formulär som huvudarbetsyta för användarna. Jag bifogar en bild på formuläret så som det ser ut nu med alla fält och deras fältnamn som skall anropa Tabell2 i själva Excelarket (Blad1)

post-61415-0-74345200-1398174216_thumb.png

 

Har lagt in koden du bifogade i UserForm enligt följande:

post-61415-0-25355800-1398174387_thumb.png

 

Prövade att stega och det som händevar att cursorn flyttade sig mellan fälten i designformuläret fram till "cbClose" där den stötte på patrull och stannade. Vad händer sedan?

:blink:

 

//Magnus

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Monshi

mmh, skicka mig din bok så ska jag ta en titt på den, det är nog enklaste. Inte lösa allt men kolla koden och lägga in lite som saknas.

 

lägg antingen upp boken här (med fiktiva data) eller skicka ett PM så får du en epostadress att skicka till.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
MvS

Det var verkligen generöst av dig! Även om du givetvis inte kan fixa allt så tror jag att jag måste se för att förstå och då är denna hjälp avgörande!

Jag bifogar den zippad utan medlemsdata. Det är ju trots allt relationen mellan tabell och userform som är det intressant och inte innehållet! Du kan ju alltid lägga in testdata om du kommer så långt, bara för att kolla att det fungerar!

 

Medlemslista TEST.zip

 

Tackar på förhand!

 

//Magnus

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Monshi

Bara en fråga på det, som jag dock tror mig veta svaret på, VAD ska den söka efter?

När du klickar SÖK, vilket/vilka fält ska den söka inom? Mitt exempel har hela tiden byggt på den enklast möjliga, ett unikt ID som man söker efter.

Ja, hur ska formuläret veta vilken post det ska visa?

 

 

Och en fråga till: När ska data sparas?

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
MvS

Det ideala vore förstås att man kan välja vilket fält som helst i userform och ange ett sökkriterium och att alla de andra fälten då uppdateras med info från den posten (raden) ur tabellen. Men jag börjar inse att det kanske kräver någon form av primärnyckel á la MS Access som kanske blir lite för svår för Excel - med eller utan VBA - att klara. Kanske om man styr efter första kolumnen, vad tror du? 

 

Hela detta projekt handlar om att hur bra MS Access än må vara som databashanterare så är det programmet inte lika spritt som Excel och finns ej heller för Mac, Excel är lite mer "var mans egendom" så att säga och det var själva baktanken när jag började mixtra med detta... 

 

Data skulle kunna sparas kanske med hjälp av ytterligare en knapp som man klickar efter ev uppdatering... 

 

//Magnus

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Monshi

Om du tänker porta detta till Mac, då kan det bli problem. VBA och Mac är väl inte bästa vänner.

 

Söka i alla fält/valt fält. Det går. Men då bör man kunna visa flera resultat och ur dessa välja post att visa.

Ett unikt ID/primärnyckel per post är trevligt men inte nödvändigt. När man väl hittat en post, ja då ser man till att hålla reda på var den är skriven.

 

Men söka i flera kolumner/vald kolumn. Vi antar att vi skapar en ny sökfunktion, att Put och Get skrivs om så att de tar radindex som argument istället..

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
MvS

Om du tänker porta detta till Mac, då kan det bli problem. VBA och Mac är väl inte bästa vänner.

 

Söka i alla fält/valt fält. Det går. Men då bör man kunna visa flera resultat och ur dessa välja post att visa.

Ett unikt ID/primärnyckel per post är trevligt men inte nödvändigt. När man väl hittat en post, ja då ser man till att hålla reda på var den är skriven.

 

Men söka i flera kolumner/vald kolumn. Vi antar att vi skapar en ny sökfunktion, att Put och Get skrivs om så att de tar radindex som argument istället..

Hej Monshi!

Hur går det? Har du haft tid att titta vidare på filen jag skickade dig? Om inte du känner du har mer att ge här så förstår jag dig fullt ut då jag inser att du säkert också har ett liv utanför e-forum... ;)!

Jag vill i sådana fall ändå tacka dig för de inputs du kommit med hittills!

//Magnus 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Monshi

har väntat lite på svar från dig, tycker inte modellformuläret du satt upp har alla delar som krävs.

 

har så att säga ingen aning om vilken post som ska visas/vad som ska sökas om du förstår vad jag menar.

 

kan iofs skapa en stegning där vi kan stega mellan posterna som start.

Det ha ju varit lite lättare om du gett mig lite data att arbeta med...

 

nåja, ett litet exempel. Där jag även rättat lite i koden jag gett tidigare.

 

 

 

Medlemslista TEST_2.zip

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
MvS

har väntat lite på svar från dig, tycker inte modellformuläret du satt upp har alla delar som krävs.

 

har så att säga ingen aning om vilken post som ska visas/vad som ska sökas om du förstår vad jag menar.

 

kan iofs skapa en stegning där vi kan stega mellan posterna som start.

Det ha ju varit lite lättare om du gett mig lite data att arbeta med...

 

nåja, ett litet exempel. Där jag även rättat lite i koden jag gett tidigare.

 

Hej igen och tack för ditt svar!

Det blev nog ett litet missförstånd från min sida där + att påskhelgen kom emellan.

I mina tankebanor har jag utgått lite grand från funktionaliteten i MS Access även om det där handlar om ett annat program. Det innebär att jag vill försöka få Excel att med ett användarformulär (userform) kunna visa utvald information från en post (rad) ur Arbetsbokens Blad1. Detta skall ske genom att man anger postspecifik information som tex "Företag" eller "Efternamn" på ett ställe i userform varvid de övriga fälten fylls i med relevant information från från den posten då man klickar på "Sök". - Låter det krångligt?

Jag antar att VBA för kunna veta vilken post (rad) som informationen skall hämtas från behöver någon form av primärnyckel (liksom Access) för att förstå hur fälten (kolumnerna) hänger samman inom en post, eller?

//Magnus

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Monshi

Ah, okej.

primärnyckel, vi kan använda radindex för det.

Dvs hålla reda på post genom att veta vilken rad den står på.

 

Söka.

Frågan är då hur den ska bete sig om det uppstår flera träffar. Presentera en lista med förslag?

Poppa upp pilknappar som de som jag nu lagt in, stega mellan resultat?

Eller bara svara "ingen unik träff"?

Lite problematiskt att använda samma fält för sök som presentation då kan skriver över söktermerna när data hämtas.

Visserligen går att minnas dem i koden.

 

Det behöver då även en knapp för att rensa formuläret, kanske varning för om ändring skett av post osv

Allt måste hanteras av kod.

 

Men till saken, om du ska kunna söka på flera fält parallellt, då kommer jag rekommendera att implementera ett avancerat filter (som kod visserligen sköter). Att göra det enbart via kod är onödigt komplext.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
MvS

Ah, okej.

primärnyckel, vi kan använda radindex för det.

Dvs hålla reda på post genom att veta vilken rad den står på.

 

Söka.

Frågan är då hur den ska bete sig om det uppstår flera träffar. Presentera en lista med förslag?

Poppa upp pilknappar som de som jag nu lagt in, stega mellan resultat?

Eller bara svara "ingen unik träff"?

Lite problematiskt att använda samma fält för sök som presentation då kan skriver över söktermerna när data hämtas.

Visserligen går att minnas dem i koden.

 

Det behöver då även en knapp för att rensa formuläret, kanske varning för om ändring skett av post osv

Allt måste hanteras av kod.

 

Men till saken, om du ska kunna söka på flera fält parallellt, då kommer jag rekommendera att implementera ett avancerat filter (som kod visserligen sköter). Att göra det enbart via kod är onödigt komplext.

Att söka från flera fält är inte absolut nödvändigt! Jag skulle vara glad om jag bara kunde använda fältet "Verksamhetsnamn" som sökfält bara de andra fälten uppdaterar sig i userfrom med postinformationen! Går det i så fall att kalibrera sökningen så att den inte behöver en exakt formulering? Det är bra om man tex söker efter "Företaget AB" och bara behöver ange "Företag" för att posten skall hittas!

 

//Magnus

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Monshi

Tja, det går att söka efter *Företag* och hitta alla som har det ordet i sitt namn...

men det gäller som sagt att hitta exakt den posten.

 

men med samma samma fält för sökning och visning av data är mitt förslag till gång

1: rensa alla fält

2: Skriv in data i något av möjliga sökfält (resten kan vara gråade/låsta i detta steg)

3: Sökning sker (tekniskt via avancerat filter eller VBA/Find)

4: Post ett presenteras, info ges om antalet träffar

5: Användaren kan stega genom träffarna.

6: Användaren klickar på knapp "redigera post" om posten ska redigeras.

7: Knapps för att spara, varning om man klickar annat val i redigeringsläge.

8: Söka på nytt, gå till punkt 1.

i övrigt: Skapa ny post?

 

Avancerat filter använd om flera fält ska sökas, annars duger Find gott.

Med avancerat filter, då behöver vi föra in ett unikt ID i tabellen så att vi kan hålla reda på vad som hittats.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
MvS

Tja, det går att söka efter *Företag* och hitta alla som har det ordet i sitt namn...

men det gäller som sagt att hitta exakt den posten.

 

men med samma samma fält för sökning och visning av data är mitt förslag till gång

1: rensa alla fält

2: Skriv in data i något av möjliga sökfält (resten kan vara gråade/låsta i detta steg)

3: Sökning sker (tekniskt via avancerat filter eller VBA/Find)

4: Post ett presenteras, info ges om antalet träffar

5: Användaren kan stega genom träffarna.

6: Användaren klickar på knapp "redigera post" om posten ska redigeras.

7: Knapps för att spara, varning om man klickar annat val i redigeringsläge.

8: Söka på nytt, gå till punkt 1.

i övrigt: Skapa ny post?

 

Avancerat filter använd om flera fält ska sökas, annars duger Find gott.

Med avancerat filter, då behöver vi föra in ett unikt ID i tabellen så att vi kan hålla reda på vad som hittats.

Ja det ser väl alldeles utmärkt ut!

 

//Magnus

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Monshi

och hur mycket av detta klarar du av själv?

 

:-)

 

varje steg för sig är i sig ingen svårighet men allt tillsammans blir lite mer än några rader kod.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
MvS

och hur mycket av detta klarar du av själv?

 

:-)

 

varje steg för sig är i sig ingen svårighet men allt tillsammans blir lite mer än några rader kod.

 

Hej igen!

Jag tycker det du skriver verkar vettigt som ett modus operandi men kan inte alls se hur jag konkret skall gå tillväga eftersom jag ännu inte tagit mig tid att på allvar lära mig VBA, i alla fall på denna nivå. Hittills i andra projekt har jag tagit befintlig kod och moddat vid behov men kan som sagt inte knacka egen. Du har varit till stor hjälp vid flera tillfällen och visserligen skulle jag bli själaglad om du kunde bistå även i detta fall med kodhjälp men jag kan förstå fullt ut om du känner det blir lite för mycket gratisleverans och att du inte har tid eller lust att lägga mer energi på detta. Jag är bara oerhört imponerad att det i dessa tider av egennytta och självupptagenhet finns vänliga själar som du som bistår andra med hjälp i detta forum utan direkta krav på motprestation.

 

Kan och vill du så tar jag ödmjukt emot din hjälp i detta, men jag har som sagt full förståelse om du känner du levererat tillräckligt i denna fråga!

 

//Magnus 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...