Frage : Wie regele ich odbc Anruf verlassenes #1062 unter Zugang vba mit einem mysql Nachrechner?

Ich verwendete den folgenden Code, um die Rekordquelle für eine Zugangsform programmatically einzustellen.  Die Rekordquelle ist eine odbc verbundene Tabelle von einem mysql Nachrechner.  Ich ändern keine Daten an allen auf der Form und wenn ich versuche, zur folgenden Aufzeichnung zu gehen, ich erhalten „ODBC -- Anruf fiel aus. [MySQL] [ODBC 5.1 Fahrer] [mysqld-5.1-37-community] doppelte Eintragung „23“ für Schlüssel„PRIMÄR“ (#1062).  Ich verstehe nicht dieses, weil ich gerade versuche, zur folgenden Aufzeichnung zu gehen, indem ich auf dem „folgenden Rekord“ Knopf klicke, einen neuen Rekord mit dem gleichen Primärkey. nicht einzusetzen
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
If StaffID > #### dann
    Schwaches sqlCmd als Schnur
  
    sqlCmd = „wählen vor * von den inneren Anmerkungen staff_team using sich anschließen (claim_number)“
    sqlCmd = sqlCmd u. „wo primarycm =“ u. StaffID
    sqlCmd = sqlCmd u. „oder secondarycm =“ u. StaffID
    sqlCmd = sqlCmd u. „oder tertiarycm =“ u. StaffID
    
    Me.RecordSource = „sqlCmd“
Sonst
    Me.RecordSource = „Anmerkungen“
Beenden wenn

Antwort : Wie regele ich odbc Anruf verlassenes #1062 unter Zugang vba mit einem mysql Nachrechner?

Die einfachste Weise ist, eine neue Frage vom Datenbankfenster zu verursachen und einzustellen (Frage | Sql-Besondere | Durchgang). Die ODBC Anschlussschnur in den Eigenschaften einstellen, und die Frage using MySQL Syntax schreiben. Solch eine Frage kann wie Rekordquelle für eine Form eingestellt werden, aber sein schreibgeschützt.

Gegründet auf Ihrem Code, können Sie jeden gültigen SQL in eine vorhandene Frage, einschließlich Durchgang schreiben fragen:

    CurrentDb.QueryDefs („MyQuery“) .SQL = strSQL

Dann die Rekordquelle auf diese Frage einstellen. Dieses ist, was ich bedeutete durch „Neufassung SQL des QueryDef Gegenstandes schnell.“

Sie können DAO oder AUFHEBEN-Techniken auch verwenden, um ein recordset, using JetSQL oder Durchgangsyntax zu produzieren. Es ist wirklich gerade eine Angelegenheit der Lieferung einer gültigen Anschlussschnur. Etwas recordsets können auf das Eigentum recordset der Form eingestellt werden, nachdem sie verursacht worden.

Sie scheinen, AUFHEBEN zu bevorzugen; die erforderlichen Eigenschaften sind

      . Eigenschaften („Strahl OLEDB: ODBC Durchgang-Aussage“) = ausrichten en
      . Eigenschaften („Strahl OLEDB: Durch Frage überschreiten anschließen Schnur“) =

Auf MSDB auch sehen: AUFHEBEN Versorger-Eigenschaften und Einstellungen
http://msdn.microsoft.com/en-us/library/aa140022(office.10).aspx
(Suche nach „Durchgang“ in Ihrem Browser, ist es eine lange Seite)


Sie können gebürtigen (Durchgang) SQL nicht in Rekordeigentum einer Form direkt schreiben quell, da es kein Eigentum gibt, zum einer Anschlussschnur zu spezifizieren.

Viel Glueck!
(°v°)
Weitere Lösungen  
 
programming4us programming4us