Access-VBA - nimevälja parameeter

Probleem

Ma helistan funktsioonile, mis otsib konkreetse välja väärtust täpseks registreerimiseks. Selleks edastan parameetri oma kontorile minu tabeli nimel, rekordilise ID ja välja nime.

 FindLinkedString Funktsioon (ByVal Tabel Stringina, ByVal ID kui Integer, ByVal Field kui String) Nagu String Sun Andmebaasina mydb2 Sun LinkedTable kui salvestusseade Sun relatedTableCount Nagu Integer Set mydb2 = CurrentDb () Set LinkedTable = mydb2.OpenRecordset (tabel) LinkedTable.MoveFecorder LinkedTableCount = 1 jaoks LinkedTable.RecordCount Kui LinkedTable! ID = ID Seejärel FindLinkedString = tabel & "!" Väli & GoTo Fin_FindLinkedString lõpp Kui LinkedTable.MoveNext Järgmine Fin_FindLinkedString: LinkedTable.Close mydb2.Close End Function 

Probleem on selles, et FindLinkedString = tabel & "!" & Field, on ilmselgelt õiglane mäng, sest see ei leia db-s väärtust, see salvestab stringi parameetritega "Table" ja "Field" keerates (nt "kommentaare" Nimi ", siis ma tahan, et see ilmuks" Smith ")

Lahendus

Seda saab kasutada:

 ... LinkedTable.MoveFirst Kuigi ei ole LinkedTable.EOF Kui LinkedTable.Fields ("ID") = ID Siis FindLinkedString = LinkedTable.Fields ("Nimi") LinkedTable.Close mydb2.Close Set LinKedTable = Mitte midagi Set mydb2 = Miski Välju funktsioon LinkedTable .MoveNext Wend End kui '... 

Kuid see võib olla lihtsam:

 ... Set LinkedTable = mydb2.OpenRecordset ("SELECT Name FROM" ja tabel & "WHERE ID =" & ID) FindLinkedString = LinkedTable.Fields (0) ... 
Eelmine Artikkel Järgmine Artikkel

Top Näpunäited