Hallo,
wir verwenden ein "irgendwann von irgendwem" erstelltes, einfaches Word Add-In um Adressdaten aus einer sehr einfachen Excelliste auszulesen und in entsprechende Textfelder des Worddokumentes zu übertragen. Seit letzter Woche funktioniert dieses Plugin nicht mehr. Zuerst hatten wir Updates oder eine beschädigte Exceldatei vermutet - leider brachte jedoch auch die Verwendung alter Dateiversion (aus der Sicherung) sowie ein temporäres "Rückabwickeln" der letzten Updates keine Abhilfe. Die Fehlermeldung ist leider recht nichtssagend:
Fehler beim Lesen der Datenquelle: [Pfad zur Quelle]
Offensichtlich kann die Exceldatei gar nicht mehr eingelesen werden.
Option Explicit
Const gc_strFileNameXls = "test.xls"
Const gc_strMA_empty = "<Mitarbeiter>"
Const gc_strFirma_empty = "<Firma>"
Dim m_data As data
Dim m_cbcbMA As CommandBarComboBox
Dim m_cbcbFirma As CommandBarComboBox
Public m_cbeDatum As CommandBarControl
Public m_rsFirmen As ADODB.Recordset
Public m_rsMA As ADODB.Recordset
Dim m_cnnXls As ADODB.Connection
Public Type data
Firma As String
FirmaText As String
Anschrift As String
Claim As String
Mitarbeiter As String
Telefon As String
Email As String
TitelAnsp As String
pp As String
Datum As String
End Type
.....
Sub GetData()
' recordsets mit Daten aus Excelfile füllen
Dim strXlsFile As String
Dim sql As String
On Error GoTo ErrHandle
Set m_rsMA = New ADODB.Recordset
Set m_rsFirmen = New ADODB.Recordset
Set m_cnnXls = New ADODB.Connection
strXlsFile = ThisDocument.Path & "\" & gc_strFileNameXls
If Not OpenXlsCNN(m_cnnXls, strXlsFile) Then
Err.Raise vbObjectError + 1
Exit Sub
End If
sql = "Select ID, Firma, Text, Anschrift, Claim from [Firmen$] order by ID"
m_rsFirmen.CursorLocation = adUseClient
m_rsFirmen.Open sql, m_cnnXls, adOpenStatic, adLockReadOnly
While Not m_rsFirmen.EOF
' "//" in Excel ist weicher Umbruch in Word -> in Listbox herausnehmen
m_cbcbFirma.AddItem Replace(m_rsFirmen!Firma, "//", " ")
m_rsFirmen.MoveNext
Wend
sql = "Select Mitarbeiter, pp, Geschlecht, Telefon, Email from [Mitarbeiter$]"
m_rsMA.CursorLocation = adUseClient
m_rsMA.Open sql, m_cnnXls, adOpenDynamic, adLockOptimistic
While Not m_rsMA.EOF
m_cbcbMA.AddItem Replace(m_rsMA!Mitarbeiter, "//", " ")
m_rsMA.MoveNext
Wend
Set m_rsFirmen.ActiveConnection = Nothing
Set m_rsMA.ActiveConnection = Nothing
m_cnnXls.Close
ThisDocument.AttachedTemplate.Saved = True
Exit Sub
' VBA-Codekommentierungs- und Fehlerhandler-Add-In hat Fehlerhandlerblock hinzugefügt. Dieser Codeblock darf NICHT bearbeitet werden.
ErrHandle:
Select Case Err.Number
Case Else
MsgBox "Fehler beim Lesen der Datenquelle:" & vbCr & vbCr & strXlsFile, vbExclamation, "QS"
End Select
Hat jemand vielleicht eine Idee, wo konkret das Problem liegen könnte?
Danke und Gruß
Marc
|