endrebjo Skrevet 13. februar 2006 Del Skrevet 13. februar 2006 (endret) Jeg driver og roter litt med databaser, og skriver om et gammelt program i samme slengen. For å unngå å skrive følgende kode for 104 knapper, ønsker jeg å finne en måte å få samme kode til å kjøres hver gang en av de 104 knappene trykkes, og la en verdi leses ut i fra Tag istedetfor at jeg skriver den i koden. Option Explicit Private Sub Beryllium_Click(Index As Integer) dataDatabase.Recordset.MoveFirst Do Until dataDatabase.Recordset.Fields("ID") = 5 dataDatabase.Recordset.MoveNext Loop frmPresentasjon.Show End Sub Private Sub Helium_Click(Index As Integer) dataDatabase.Recordset.MoveFirst Do Until dataDatabase.Recordset.Fields("ID") = 2 dataDatabase.Recordset.MoveNext Loop frmPresentasjon.Show End Sub Private Sub Hydrogen_Click(Index As Integer) dataDatabase.Recordset.MoveFirst Do Until dataDatabase.Recordset.Fields("ID") = 1 dataDatabase.Recordset.MoveNext Loop frmPresentasjon.Show End Sub Private Sub Litium_Click(Index As Integer) dataDatabase.Recordset.MoveFirst Do Until dataDatabase.Recordset.Fields("ID") = 3 dataDatabase.Recordset.MoveNext Loop frmPresentasjon.Show End Sub osv... Altså at én blokk med kode kjøres hver gang en hvilken som helst av de 104 knappene trykkes, og at den deretter bruker en verdi fra Tag-propertien til knappen som trykkes. Har noen noe forslag? Hele prosjektet ligger vedlagt. Grunnstoffer.zip Endret 13. februar 2006 av endrebjorsvik Lenke til kommentar
aadnk Skrevet 13. februar 2006 Del Skrevet 13. februar 2006 Du behøver ikke å benytte Tag-egenskapen. Dersom du anvender deg av en såkalt kontroll-array, vil det være mulig å benytte Index-egenskapen. Se i vedlagt prosjekt. Grunnstoffer.zip Lenke til kommentar
endrebjo Skrevet 14. februar 2006 Forfatter Del Skrevet 14. februar 2006 (endret) Ahh...så flere knapper kan ha samme navnet. Genialt! Jeg fylte faktisk ut Index-verdier på alle knappene først, men så kom jeg på at jeg kunne bruke en Tag-verdi som ikke måtte starte på null, så da fylte jeg ut de også. Dobbelt opp. Tusen takk for hjelpen! Edit: Hva er dette til? Private Sub Form_Load() ' Referer til nåværende mappe dataDatabase.DatabaseName = ValidatePath(App.Path) & "databaseOld.mdb" End Sub Public Function ValidatePath(sPath As String) As String ' Legg til skråstrek om nødvendig ValidatePath = sPath & IIf(Right(sPath, 1) = "\", "", "\") End Function For å sjekke om databasen finnes? Endret 14. februar 2006 av endrebjorsvik Lenke til kommentar
Jonas Skrevet 14. februar 2006 Del Skrevet 14. februar 2006 ValidatePath-path funksjonen (Hvis det er den du stusser på) sjekker en gitt filbane og retter hvis den er feil. Alle filbaner skal ende med "\", hvis den ikke gjør det vil altså funksjonen legge en til. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå