Access / VBA Datensatz nach num Wert suchen

Gast #6695222
Lesenswert?

Hallo Forengemeinde,
ich habe eine Tabelle / Abfrage worin auch numerische Werte stehen.
Nun muss ich per VBA in dieser Tabelle/Feld einen numerischen Wert 
suchen.
Dies gelingt mir aber mit FindFirst, usw nicht, da FindFirst nach String 
sucht, und nicht numerisch.
Es soll einfach in einer Tabelle, in dem Feld Versuch [Integer] eine 
bestimmte Zahl gesucht werden.

Womit kann ich dies lösen?

Bin auf Reha, und habe keine Bücher hier, und ist auch leider die Hilfe 
von VBA beschädigt, so dass ich auch hier nicht suchen kann.
#6695586
Lesenswert?

Du könntest das DAO-Objekt in VBA einbinden, dann versteht VBA auch 
SQL-Befehle. Damit kannst Du außerdem wesentlich präzisere 
Datenbankabfragen erstellen, außerdem funktioniert es mit diversen 
Datentypen wie string, integer, long etc.

Das ist nicht einmal sonderlich kompliziert, aber zu umfangreich, um es 
hier darzustellen. Im Internet wirst Du unter DAO-Objekt und SQL fündig, 
da findest Du auch Code-Beispiele für VBA.
Gast #6704867
Lesenswert?

Irgendwie so:
1
private sub showQueryData
2
  dim db as dao.database
3
  dim rs as dao.recordset
4
  dim sqlStr as string
5

6
  sqlStr = "SELECT * FROM TabelleMitDaten WHERE FeldMitNummer = 122"
7

8
  set db = currentDb
9
  set rs = db.openRecordset(sqlStr)
10
  ' rs hat jetzt alle Treffer mit Nummer 122
11
  rs.movefirst
12

13
  do while not rs.EOF '(EOF = End Of File)
14
    ' hier kommt der Code für jeden Treffer
15
    debug.print("the ID: " & rs!id & " Daten Name: " & rs!name)
16
    rs.movenext
17
  loop
18

19
  msgbox("End of TabelleMitDaten")
20
end sub
Gast #6707070
Lesenswert?

Es ging dann doch mit folgendem Code:
1
    If Versuch_gefunden = False Then
2
       ' Suchen, wie viele Rettungsversuche dieser Datei bereits erfasst wurden
3
       Do
4
         SektDefTb.FindFirst "Datei_ID = " & DateiID & " AND " & "Versuch = " & Int_VersuchCount
5
         If SektDefTb.NoMatch = True Then
6
            Versuch_gefunden = True
7
            Exit Do
8
         End If
9
       Loop While ZielTb.NoMatch
10
       Int_VersuchCount = Int_VersuchCount + 1
11
     End If

Int_VersuchCount ist hier mein Problemfall gewesen. Dieser ist ein 
Int-Wert, und wird dann auch so in der DB gespeichert.

Ich habe dies auch irgendwo im Netz gefunden. Aber auf die Syntax mit 
doppelten und einfachen Hochzeichen muss man erstmal draufkommen. Da 
fehlt mir zugegeben noch Hintergrundwissen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren