2017-02-14 1 views
1

Gibt es Artikel oder andere Informationen über Möglichkeiten zum Abrufen/Vergleichen von Daten aus Feldern mit Datensätzen, die mehrere Werte enthalten können?SQL-Zugriff auf Datensätze, die "mehrere Werte zulassen"

enter image description here

Wie auf this post vorgeschlagen Ich versuche, meinen Weg zu langen Code durch eine SQL-Anweisung zu ersetzen, aber ich kann nicht verwalten, um es auszuführen:

Dim SQL As String 
SQL = "UPDATE 12Dec " _ 
& "Set [WPRC Part] = 'YES' " _ 
& "WHERE " _ 
& "12Dec.PartNo.value in (SELECT SparePartNo FROM WPRC_Parts_List) " _ 
& "OR 12Dec.PartNo.value in (SELECT SerialPartNo FROM WPRC_Parts_List) " 
DoCmd.RunSQL SQL 

In dem obigen Code:

  • 12dez ist eine Tabelle, die die Felder WPRC Teil und PartNo (Feld, das mehrere Werte in seiner r ermöglicht enthält ecords)
  • WPRC_Parts_List ist eine Tabelle, die die Felder SpartPartNo und SerialPartNo enthält
+0

Was ist der Fehler? Können Sie 'Debug.print SQL' vor der letzten Zeile schreiben und sehen, was Sie bekommen? Dann einfach kopieren und fügen Sie die SQL in SQL in Access und sehen, was passiert ist? – Vityata

Antwort

1

Ihr Code diese SQL erzeugt:

UPDATE 12Dec Set [WPRC Part] = 'YES' WHERE 12Dec.PartNo.value in (SELECT SparePartNo FROM WPRC_Parts_List) OR 12Dec.PartNo.value in (SELECT SerialPartNo FROM WPRC_Parts_List)

Sind Sie sicher, dass 12Dec.PartNo.value Spaltenname ist? Schau mal hier: http://www.w3schools.com/sql/trysql.asp?filename=trysql_select_in

+0

Ja, ich meine, der Name des mehrwertigen Feldes lautet _PartNo_ Dann bekomme ich den Fehler Laufzeitfehler 3075: Syntaxfehler (fehlender Operator) im Abfrageausdruck 12Dec.PartNo.value in .... WPRC_Parts_List) – Seb

+1

Vielen Dank für Ihre Nachricht Link, weil es mir erlaubt, den Fehler zu finden. Im Grunde habe ich nur den 12Dec im WHERE-Bereich entfernt und es läuft richtig. Das Seltsame ist, dass ich sicher bin, dass ich es vorher probiert habe und es nicht funktioniert hat ... Also UPDATE 12Dec Set [WPRC Part] = 'YES' WHERE PartNo.value in (SELECT SparePartNo FROM WPRC_Parts_List) ODER PartNo.value in (SELECT SerialPartNo FROM WPRC_Parts_List) ' – Seb

+1

Grundsätzlich, wenn ich schrieb, werfen Sie einen Blick auf' 12Dec.PartNo.value' Ich habe gedacht, dass '.value' ist der falsche Teil ... Aber immer noch, glücklich, dass geholfen hat. :) – Vityata

Verwandte Themen