Ich habe ein Access VBA-Programm, das zwei Tabellen verbindet und speichert sie in einem anderen. Mein Problem ist, dass anstelle der SQL-Abfrage Beitritt commonField
und die neue Tabelle mit einem commonField
Feld, die neue Tabelle hat die commonField
mit dem Namen tableName1_commonField
und eine andere mit dem Namen tableName2_commonField
.SQL-Abfrage zu verbinden Feld umbenennt Feld in Access VBA
Also, wenn die Abfrage war die folgende:
SELECT IIPM.*, UNIX.* INTO [UNIX_lob] FROM IIPM INNER JOIN UNIX ON IIPM.[appcode_0] =
UNIX.[appcode_0];
Dann wird das appcode_0
Feld, das UNIX_lob
zwischen IIPM
und UNIX
wird zwei Felder namens IIPM_appcode_0
und UNIX_appcode_o
in der neuen Tabelle gemeinsam ist, wenn ich es will eine bleiben einzelnes Feld appcode_0
.
ich dies direkt nach der SQL-Abfrage zurückverfolgt haben wird ausgeführt:
' Set the name of the new table where the joins will be stored. '
newTableName = "[" + tableName2 + "_lob]"
' Join tableName1 and tableName2 on commonField, and store the joined data in newTableName '
sqlJoinQuery = "SELECT " + tableName1 + ".*, " + tableName2 + ".*" & _
" INTO " + newTableName & _
" FROM " + tableName1 & _
" INNER JOIN " + tableName2 & _
" ON " + tableName1 + "." + commonField + " = " + tableName2 + "." + commonField + ";"
Debug.Print sqlJoinQuery
CurrentDb.Execute sqlJoinQuery
das Verhalten für Access VBA zu erwarten wäre, weil Sie nicht zwei Spalten den gleichen Namen haben können. Aber was ist deine Frage? Warum passiert es? weil der Feldname zwischen den Tabellen wiederholt wird und Sie alle Platzhalter als Platzhalter auswählen. Wie man es stoppt? Wählen Sie nicht alle Spalten aus. wie man anhängen statt verbinden? Verwenden Sie Union All – Matt
Ich war mir nicht bewusst, dass das erwartete Verhalten ist und nahm an, dass es ein Fehler beim Schreiben meiner Abfrage war. Danke - in diesem Fall, wenn ich eine dieser Spalten umbenenne, dann wird das ausreichen. – Paradox
Was Matt sagte. Es gibt keinen richtigen Weg, um das generisch zu machen, an den ich denken kann, Sie müssen wirklich alle Ihre Felder auflisten. Nun, vielleicht können Sie die Felder Sammlung durchlaufen und sie alle in ein Array schreiben, aber das klingt wie ein Albtraum. –