Access VBA / Datastyring / Find data
|
Jeg holder også Access VBA firmakurser
Ja, jeg holder ikke kun fjernundervisningskurser
- jeg kan også komme ud i din virksomhed og undervise med
udgangspunkt i jeres data og udfordringer.
|
|
Find data
Seek
Her følger en lille kodestump, der finder en bestemt post i kundekartoteket:
Public Sub Find()
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb()
Set rs = db.OpenRecordset("Kunder")
rs.Index = "PrimaryKey"
rs.Seek "=", 13
If rs.NoMatch Then
MsgBox "Blev ikke fundet"
Else
MsgBox "Kunde nr. 13 hedder " & rs("Firma")
End If
rs.Close
Set rs = Nothing
End Sub
Bemærk at seek metoden kun kan bruges på indekserede kolonner, hvilket betyder, at den kun kan bruges på table recordssets.
Find
Hvis man skal finde informationer i dynasets eller snapshots skal man i stedet bruge Find metoden:
- FindFirst: starter ved begyndelsen af recordsettet og finder den første forekomst af det søgte.
- FindLast: starter i bunden og søger baglæns
- FindNext: Starter ved den aktuelle post og finder næste forekomst
- FindPrevious: Starter ved den aktuelle post og finder den forrige
- NoMatch: Returnerer True, hvis det søgte ikke blev fundet
Det kunne se sådan her ud:
rs.FindFirst "KøbIalt >= 100000"
Og selve strukturen kunne sættes sådan her op:
rs.FindFirst betingelse
Do Until rs.NoMatch
Match fundet - gør noget ved det!!
rs.FindNext betingelse
LoopSQL
Endelig kan vi bruge en SQL sætning når vi danner vores recordset:
strSQL = "SELECT * FROM Kunder WHERE KøbIalt >= 100000"
Set rs = db.OpenRecordset(strSQL, dbOpenSnapshot)
Do Until rs.EOF
Debug.Print rs("Firma")
rs.MoveNext
Loop
Når du har betalt for kurset får du adgang til øvelser til hver lektion.
Og når du har fået godkendt din besvarelse får du desuden adgang til mine løsningsforslag med ekstra tips og trix.<<- Recordset
Ret data ->>