Hallo zusammen!
Ich bin verzweifelt, vielleicht kann mir ja jemand helfen.
Un zwar habe ich eine Datenbak von meinem Vorgänger „geerbt“ und diese DB bietet die Funktionalität, einem Kunden mit Dokumenten zu „verlinken“.
Diese Funktion soll ich nun auch in eine andere DB einbauen… meine VBA-Kenntnisse reichen leider dafür nicht aus. Hmm, nun dachte ich, ich könnte ja den VBA-Code von der „alten“ DB übernehme. Das müsste ja klappen - dachte ich.
Aber ich bekomme immer die Fehlermeldung „Typen unverträglich“, wenn ich ein Dokument hinzufügen möchte.
nachfolgend der Code beim Klicken auf „Dokument hinzufügen“
Hat jemand einen Tipp für mich?
Ach Ja, wir arbeiten mit Access 2003.
Danke & Grüße
________________________________________________
Private Sub Befehl2_Click()
On Error GoTo fehler
Dim db As Database
Dim rs As Recordset
Dim DocPfad As String
Dim a As Variant
Set db = CurrentDb()
Set rs = db.OpenRecordset(„tblDokumente“, dbOpenDynaset)
a = DateiOeffnen(„H:\C“, „Bitte Dokument auswählen:“, „ALLE“)
If IsNull(a) Or a = „“ Then
Else
DocPfad = a
rs.AddNew
rs!DocPfad = DocPfad
rs!KndNr = Me.KndNr
rs.Update
End If
Me.UForm.Requery
rs.Close
db.Close
ende:
Exit Sub
fehler:
MsgBox Err.Description, 16, „“
Resume ende
End Sub
__________________________________________
Und hier noch die Funktion „Dateioeffnen“:
________________________________________________
Function DateiOeffnen(strVerzeichnis As String, strTitel As String, FilterArt As String) As String
Dim strFilter As String
Dim strDateinameUndPfad As String
Dim strDateiname As String
Dim lngErgebnis As Long
’ Angebotene Dateifilter in der Dropdownliste „Dateityp“
Select Case FilterArt
Case „Access“
strFilter = „Access-DB (*.mdb; *.mde)“ & Chr$(0) & „*.MDB; *.MDE“ & Chr$(0)
Case „Wave“
strFilter = „Wav-File (*.wav)“ & Chr$(0) & „*.wav“ & Chr$(0)
Case „Wordvorlage“
strFilter = „Wordvorlage (*.dot)“ & Chr$(0) & „*.dot“ & Chr$(0)
Case „ALLE“
strFilter = „Alle Dateien (*.*)“ & Chr$(0) & „*.*“ & Chr$(0)
strFilter = strFilter & „Worddokument (*.doc)“ & Chr$(0) & „*.doc“ & Chr$(0)
strFilter = strFilter & „Exceltabelle (*.xls)“ & Chr$(0) & „*.xls“ & Chr$(0)
strFilter = strFilter & „Textdatei (*.txt)“ & Chr$(0) & „*.txt“ & Chr$(0)
strFilter = strFilter & „Acrobatdatei (*.pdf)“ & Chr$(0) & „*.pdf“ & Chr$(0)
strFilter = strFilter & „Bitmap (*.bmp)“ & Chr$(0) & „*.bmp“ & Chr$(0)
strFilter = strFilter & „GIF-Bild (*.gif)“ & Chr$(0) & „*.gif“ & Chr$(0)
strFilter = strFilter & „JPG-Bild (*.jpg)“ & Chr$(0) & „*.jpg“ & Chr$(0)
End Select
’ Vorgegebenes Verzeichnis
If strVerzeichnis = „“ Then
strVerzeichnis = CurDir$ & Chr$(0) ’ Wenn leer, dann das aktuelle Verzeichnis verwenden
Else
strVerzeichnis = strVerzeichnis & Chr$(0) ’ ANSI „0“ an übergebenes Verzeichnis anhängen
End If
If strTitel = „“ Then
strTitel = „Datei-Öffnen“ ’ Wenn kein Titel übergeben, Standardtitel festlegen
Else
strTitel = strTitel & Chr$(0) ’ ANSI „0“ an übergebenen Titel anhängen
End If
’ Speicherplatz für Dateinamen & Pfad reservieren
strDateinameUndPfad = Space$(255) & Chr$(0)
’ Speicherplatz für Dateinamen ohne Pfad reservieren
strDateiname = Space$(255) & Chr$(0)
'Datenstruktur von pOPENFILENAME festlegen
pOpenfilename.lStructSize = Len(pOpenfilename)
pOpenfilename.hwndOwner = 0&
'pOpenfilename.hwndOwner = Application.hWndAccessApp
pOpenfilename.lpstrFilter = strFilter
pOpenfilename.nFilterIndex = 1
pOpenfilename.lpstrFile = strDateinameUndPfad
pOpenfilename.nMaxFile = Len(strDateinameUndPfad)
pOpenfilename.lpstrFileTitle = strDateiname
pOpenfilename.nMaxFileTitle = Len(strDateiname)
pOpenfilename.lpstrInitialDir = strVerzeichnis
pOpenfilename.lpstrTitle = strTitel
pOpenfilename.flags = OFN_FILEMUSTEXIST Or OFN_PATHMUSTEXIST Or OFN_HIDEREADONLY
pOpenfilename.nFileOffset = 0
pOpenfilename.nFileExtension = 0
pOpenfilename.lCustData = 0
pOpenfilename.lpfnHook = 0
pOpenfilename.lpTemplateName = „“
lngErgebnis = API_DateiOeffnen(pOpenfilename)
If lngErgebnis 0 Then
DateiOeffnen = Left(pOpenfilename.lpstrFile, InStr(pOpenfilename.lpstrFile, Chr$(0)) - 1)
Else
DateiOeffnen = „“
End If
’ If lngErgebnis 0 Then
’ DateiOeffnen = Left(pOpenfilename.lpstrFile, pOpenfilename.nFileOffset - 1) & _
’ „*“ & Mid$(pOpenfilename.lpstrFile, pOpenfilename.nFileOffset + 1, _
’ pOpenfilename.nFileExtension - pOpenfilename.nFileOffset - 1) & „*“ & _
’ Mid$(pOpenfilename.lpstrFile, pOpenfilename.nFileExtension + 1, Len(pOpenfilename.lpstrFile) - pOpenfilename.nFileExtension)
’ Else
’ DateiOeffnen = „“
’ End If
End Function
_________________________________________