2016-04-13 6 views
-1

Gibt es eine Verknüpfung Weg Felder in einer übergeordneten Tabelle in meiner Abfrage wie die unten zuzugreifen:Zugriff auf VBA - Elterntabellendaten leicht abfragen?

SELECT childField1 
FROM childTable 
WHERE childField2 = "somestring" 
AND 
WHERE parentField1 = "someotherstring" 'parent field is in parentTable 

Meine Tabellen natürlich sind korrekt mit ID-Felder eingegeben und ein parentField1_ID in der Childtable.

Ich kann die traditionelle Route mit einigen JOIN s gehen, aber da dies VBA ist, frage ich mich, ob es nicht etwas einfacher eingebaut ist, um diese Art von Referenz zu machen.

+0

* da diese VBA ist * ... Ich sehe alle VBA-Code nicht , nur eine SQL-Abfrage. Was ist der Kontext, den Sie ausführen müssen (z. B. recordsource, combo rowsources, DAO-Recordsets)? – Parfait

Antwort

0

In VBA erstellen Sie eine dynamische Abfragezeichenfolge, die zu der erforderlichen SQL-Zeichenfolge führt (einschließlich Joins oder was Sie sonst noch benötigen), dann verwenden Sie normalerweise currentDb.OpenRecordset(), um eine Recordset-Variable festzulegen. Alternativ kann die Zeichenfolge zum Erstellen und Steuern von Recordsource-Eigenschaften verwendet werden.

Hier ist ein (nicht funktionierenden - Ihr schließt sich mir Anforderungen klar sind) Beispiel Variablen für zwei Strings:

Dim str1 As String 
Dim str2 As String 
Dim sql As String 

str1 = "somestring" 
str2 = "someotherstring" 

sql = "SELECT childField1 " & _ 
     "FROM childTable1 " & _ 
     "INNER JOIN parentTable " & _ 
     "ON childTable.childField = parentTable.ParentField " & _ 
     "WHERE childField = """ & str1 & """ AND " & _ 
     " parentField = """ & str2 & """;" 

Me.RecordSource = sql 
Verwandte Themen