Access-VBA - Feldparameter Name

Problem

Ich rufe eine Funktion auf, die nach dem Wert eines bestimmten Feldes für eine genaue Registrierung sucht. Dazu übergebe ich meinem Büro im Namen meiner Tabelle einen Parameter, die Datensatz-ID und den Feldnamen.

 FindLinkedString-Funktion (ByVal-Tabelle als Zeichenfolge, ByVal-ID als Ganzzahl, ByVal-Feld als Zeichenfolge) als Zeichenfolge Sun als Datenbank mydb2 Sun LinkedTable als Datensatzgruppe Sun linkedTableCount als Ganzzahl Set mydb2 = CurrentDb () Set LinkedTable = mydb2.OpenRecordset (Tabelle) LinkedTable.MoveFirst For linkedTableCount = 1 To LinkedTable.RecordCount If LinkedTable! ID = ID Dann FindLinkedString = Tabelle & "!" Feld & GoTo Fin_FindLinkedString End If LinkedTable.MoveNext Next Fin_FindLinkedString: LinkedTable.Close mydb2.Close End Function 

Das Problem ist, dass FindLinkedString = table & "!" & Field ist offensichtlich ein faires Spiel, da es keinen Wert in der Datenbank findet. Es speichert die Zeichenfolge, indem "Table" und "Field" durch die Parameter gedreht werden (z. B. "reviews" Name ", dann möchte ich, dass es als" Smith "angezeigt wird).

Lösung

Sie können dies verwenden:

 ... LinkedTable.MoveFirst während nicht LinkedTable.EOF Wenn LinkedTable.Fields ("ID") = ID, dann FindLinkedString = LinkedTable.Fields ("Name") LinkedTable.Close mydb2.Close Set LinKedTable = Nothing Set mydb2 = Nothing Exit Function LinkedTable .MoveNext Wend End If '... 

Aber es kann einfacher sein:

 ... Set LinkedTable = mydb2.OpenRecordset ("SELECT Name FROM" & Tabelle & "WHERE ID =" & ID) FindLinkedString = LinkedTable.Fields (0) ... 
Vorherige Artikel Nächster Artikel

Top-Tipps