03. juni 2002 - 15:55Der er
6 kommentarer og 1 løsning
VBA userform-kode til opdatering af database
Jeg har et Excel-ark med en database. Databasen består af 4 kolonner med følgende felter: Måned, værdi1, værdi2 og værdi3. Databasen kan højst indeholde 12 poster - én til hver måned.
Til opdatering af databasen har jeg en userform, hvor jeg har en Combo-box til måneden og 3 text-bokse til værdi1, værdi2 og værdi 3.
Derudover har jeg en OK og en Annuler knap på userformen.
Hvordan skal VBA-koden til OK-knappen se ud, når jeg ønsker at databasen skal opdateres korrekt. Står der en værdi for den pågældende måned i forvejen skal den bare overskrives.
Hvis din database starte i A1 med iverskrifter Private Sub CommandButton1_Click() Range("a1").Offset(ComboBox1.ListIndex + 1, 1) = textBox1.Value Range("a1").Offset(ComboBox1.ListIndex + 1, 2) = textBox2.Value Range("a1").Offset(ComboBox1.ListIndex + 1, 3) = textBox3.Value End Sub
her er en kode til opdatering af databasen (skal sikkert modificeres lidt *S*)
Sub cmdOK_Click() tekst1 = "1" tekst2 = "2" tekst3 = "3" ' Set Db = OpenDatabase(Name:="C:\Brugeroplysninger.mdb") ' Databasen Set RS = Db.OpenRecordset(Name:="bruger") ' den aktuelle tabel
For i = 0 To RS.RecordCount - 1
If ComboBox.Value = RS.Fields(0).Value Then 'Måneden RS.Edit RS.Fields(1).Value = tekst1 RS.Fields(2).Value = tekst2 RS.Fields(3).Value = tekst2 RS.Update Exit For End If RS.MoveNext Next i End Sub
Tak Bak, lige hvad jeg skulle bruge med både INDEX og OFFSET :-)
Lige et lille tillægsspørgsmål: Hvordan vil koden til ComboBox1_Change se ud, hvis jeg nu ønsker at text-boksene skal opdateres hver gang man vælger en ny måned? Så man således får mulighed for at "bladre" i værdierne og evt. ændre ved at trykke "OK".
Åh ja, det er klart. Var i gang med at eksperimentere med noget opslag, men det er jo slet ikke nødvendigt.
Tak for hjælpen!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.