Wie verwenden Sie die FindRecord-Methode in VBA?
Ich habe ein kleines Abfrage-generator auf eine form, die ich erstellt, ermöglicht dem Benutzer, um die Abfrage zu speichern, die Sie gebaut. Funktioniert Super! Dann erkannte ich, dass Sie sparen können mehrere Abfragen mit dem selben Namen. Nicht gut. Was Tue ich, wenn Sie die Abfrage erstellen und wählen, um es zu retten, ich fügen Sie einfach den SQL-string in einer Tabelle in einem Feld und einem Namen, den Sie wählen, in einem anderen Feld. Leicht genug. So, jetzt Zahl ich alles, was ich zu tun Suche im Feld Name ein, und überprüfen Sie es gegen den Namen, den der Benutzer gewählt hat. Ich weiß nicht, warum, aber ich kann nicht scheinen zu wickeln meinem Kopf herum. Ich kann nicht scheinen, um die FindRecord arbeiten. Tut es ein boolean zurückgibt? Kann ich nicht einfach etwas wie das hier tun...
If DoCmd.FindRecord(userNameVariable) = True Then
msgbox("That name exists")
Else
msgbox(That name doesnt exist)
End If
Nun, dass ich schau, dass es gibt keine, wo zu schauen, wie die Tabelle und das Feld name.
Du musst angemeldet sein, um einen Kommentar abzugeben.
DoCmd.FindRecord gibt den ersten Datensatz gefunden, mit diesen Kriterien. Wenn Sie nur wollen, um zu überprüfen, ob dieser name bereits vorhanden ist, denke ich, dass es einen besseren Weg, das zu tun, was Sie brauchen.
Eine Möglichkeit ist, erstellen Sie ein SQL-string wie
"SELECT [Name] FROM [Table] WHERE [Name] = '" & userNameVariable & "'"
,die Abfrage ausführen und dann testen, ob das recordset leer ist. Der Code würde wie folgt Aussehen
Laut msdn, es geht einfach um die Daten, die Sie suchen. Ich glaube nicht, dass das, was Sie brauchen.
Hier ist, was ich tun würde (ich sage nicht, dass es die beste Methode ist, genau das, was ich tun würde). Angenommen, die Tabelle heißt
TblName
und das Feld halten der gespeicherte name istSQLName
dann:Gespeicherte Abfrage Namen gespeichert werden, die nicht unterstützte MSysObjects-Tabelle, also in einer lokalen Datenbank, Sie können look-up-Tabelle, um herauszufinden, ob eine Abfrage vorhanden ist: