Hop til teksten

IT FJERNUNDERVISNING
- IT kurser når Du har tid!

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
Loop

SQL

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.