Access-VBA - Namnfältparameter

Problem

Jag ringer en funktion som söker efter värdet av ett specifikt fält för exakt registrering. För att göra detta skickar jag en parameter till mitt kontor på uppdrag av mitt bord, registrerings-ID och fältnamn.

 FindLinkedString-funktionen (ByVal-tabell som sträng, ByVal-ID som heltal, ByVal-fält som sträng) Som strängsålder som databas mydb2 Sun LinkedTable som Recordset Sun linkedTableCount som helhetsuppsättning mydb2 = CurrentDb () Set LinkedTable = mydb2.OpenRecordset (tabell) LinkedTable.MoveFirst För linkedTableCount = 1 Till LinkedTable.RecordCount Om LinkedTable! ID = ID Then FindLinkedString = tabell & "!" Field & GoTo Fin_FindLinkedString Avsluta Om LinkedTable.MoveNext Nästa Fin_FindLinkedString: LinkedTable.Close mydb2.Close End Function 

Problemet är att FindLinkedString = tabell & "!" & Field, är uppenbarligen rättvist spel eftersom det inte kommer att hitta värde i db, det sparar strängen genom att vrida "Tabell" och "Fält" av parametrarna (t.ex. "recensioner" Namn "då vill jag att det visas" Smith ")

Lösning

Du kan använda detta:

 ... LinkedTable.MoveFirst While Not LinkedTable.EOF Om LinkedTable.Fields ("ID") = ID Then FindLinkedString = LinkedTable.Fields ("Name") LinkedTable.Close mydb2.Close Set LinKedTable = Inget Ange mydb2 = Inget Avsluta Funktion LinkedTable .MoveNext Wend End If '... 

Men det kan vara enklare:

 ... Ange LinkedTable = mydb2.OpenRecordset ("VÄLJ Namn FRÅN" & Tabell & "VAR ID =" & ID) FindLinkedString = LinkedTable.Fields (0) ... 
Tidigare Artikel Nästa Artikel

Bästa Tipsen