Hallo Franz,
Word soll sich Daten aus Access holen und diese dann in die
entsprechenden Textmarken im Formular wiedergeben.
und WIE macht Word das, bzw. wie heißt der Code, den Du
benutzt?
Der Code liegt in einem Modul bei Word. Es wird zunächst nach der AuftragsnummerID gefragt, zu dem dann die Daten übernommen werden sollen.
Ich habe den Code an manchen Stellen mit “…“ gekürzt, weil es hier sonst zu lang wird:
Sub DatenVonACCESSNachWORD()
Dim objWord As Object
Dim con As ADODB.Connection
Dim rst As ADODB.Recordset
Dim str As String
Dim strAuftrag2009ID As String
Dim strAGFirma As String
…
str = InputBox(„Bitte geben Sie laufende Nummer des Auftrags ein:“)
If str = „“ Then Exit Sub
str = „Auftrag2009ID=’“ & str & „’“
Set con = New ADODB.Connection
With con
.Provider = „Microsoft.ACE.OLEDB.12.0“
.Open „D:\Sonstiges \Programme\Auftraege_2009.accdb“
End With
Set rst = New ADODB.Recordset
With rst
.Open Source:=„qryAuftragsbestaetigung“, _
ActiveConnection:=con, _
CursorType:=adOpenKeyset, _
LockType:=adLockOptimistic
.Find Criteria:=str, SearchDirection:=adSearchForward
If Not .EOF Then
strAuftrag2009ID = .Fields(„Auftrag2009ID“).Value
strAGFirma = .Fields(„AuftraggeberFirma“).Value
strAGMA = .Fields(„zHd“).Value
…
Else
MsgBox „Laufende Nummer für Auftrag nicht gefunden“
End If
.Close
End With
con.Close
Set rst = Nothing
On Error Resume Next
Set objWord = GetObject(, „Word.Application.12“)
With objWord
.Selection.GoTo What:=wdGoToBookmark, Name:=„AG_Firma“
.Selection.TypeText Text:=strAGFirma
…
.ActiveDocument.Save
End With
Set objWord = Nothing
End Sub
Hat jemand von euch Erfahrung mit dieser Fehlermeldung bzw.
kann mir sagen, wie man die Ursache dafür beheben kann.
Ja, Nein,wenn Du nicht genauer den Code, bzw. die Abfrage
(deren SQL-String) mitteilst.
Beim Rumprobieren ist mir aufgefallen, dass diese
Fehlermeldung immer dann nicht auftaucht, wenn die Abfrage aus
welcher die Daten entnommen werden sollen, nicht aus mehreren
Tabellen die untereinander in Beziehung stehen, besteht.
Wie oben gesagt: WIE heißt die Abfrage?
Die Abfrage “qryAuftragsbestaetigung“ in Access auf die der Code oben zugreift lautet:
SELECT qryAuftrag2009.Auftrag2009ID, qryAuftrag2009.AuftraggeberFirma, [Anrede] & " " & [Titel] & " " & [AuftraggeberMA] AS zHd, qryAuftrag2009.AuftraggeberAdresse, [AuftraggeberPLZ] & " " & [AuftraggeberStadt] AS AdressZusatz, [TrustMATitel] & " " & [TrustMAVorname] & " " & [TrustMANachname] AS SV, qryAuftrag2009.TrustMATelefon, qryAuftrag2009.TrustMAFax, qryAuftrag2009.TrustMAemail, qryAuftrag2009.Schadennummer, qryAuftrag2009.VNName, qryAuftrag2009.Schadentag, [SchadenortPLZ] & " " & [SchadenortStadt] AS SchadenOrt, [AuftragNrJahr] & „-“ & [AuftragNrMonat] & „-“ & [Auftrag2009ID] & „-“ & [TrustMAKurz] AS UnserZeichen, [AnredeBrief] & " " & [zHd] & „,“ AS Brief, qryAuftrag2009.TrustStandortAdresse, [TrustStandortPLZ] & " " & [TrustStandortStadt] AS TrustAdressZusatz
FROM qryAuftrag2009;
Beim Ausführen kommt jedoch folgende Meldung:
Laufzeitfehler‘-2147217900 (80040e14)‘:
Unzulässige SQL-Anweisung; DELETE
, INSERT
,PROZEDURE
,
oder
UPDATE
erwartet.
Das bedeutet, dass eine Auswahlabfrage fälschlicherweise als
Aktionsabfrage ausgeführt werden soll, bzw. es gar kein
gültiges SQl-Statement ist.
Gibt es die Möglichkeit den Aufruf von Word und die Übergabe von Daten von Access aus zu starten?
Viele Grüße
Kris