Hallo Leute,
ich habe zwar viele Sachen für alte Versionen gefunden aber nicht das was ich brauche.
Access 2010, Windows 7
1. Ein Dialog zum Auswählen einer Excel-Datei.
2. Import dieser Excel-Datei, Worksheet Tabelle2
Schon mal Danke
Gruß
Johann
Hallo,
mhmm, wieso "alte Version"? Welche A2010-Version (32 bit, 64 bit)?
http://dbwiki.net/images/a/aa/AccSampleExcelToAccess.zip
ansonsten such mal hier nach Filedialog und/oder Transferspreadsheet.
Bei 64bit müssen Api-Funktionen besonders deklariert werden.
Hallo Franz,
da habe wir uns mal nicht verstanden weil ich mich auch doof ausgedrückt habe.
Für mich ist erstmal wichtig den öffnen-Dialog zu bekommen.
Mit alt meinte ich die Function die so anfängt:
Function GetOpenFileName Lib "comdlg32.dll" _
Alias "GetOpenFileNameA" (pOpenfilename As _
OPENFILENAME) As Long
dazu gehört noch eine zweite Function.
Das lief immer ganz gut aber jetzt kommt die allgemeine Fehlermedlung:
Während der Kommunikation der Datenbank mit dem OLE-Server oder Aktive-X Steuerelement ist ein Problem aufgetreten.
Meine Routine läuft mit Xp und 2007 ohne Problemen.
Ach ja so ganz ist das nicht meine sondern habe ich vor Urzeiten mal bekommen.
Gruß
Johann
Hallo,
Welche Ac-Version???
Hallo,
vergessen wir mal den Inport aus Excel den bekomme ich hin (war auch nur zur Erklärung gedacht).
Datei auswählen, ich habe diese Function:
Option Compare Database
Option Explicit
Declare Function GetOpenFileName Lib "comdlg32.dll" _
Alias "GetOpenFileNameA" (pOpenfilename As _
OPENFILENAME) As Long
Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
Flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As Long
End Type
Public Const OFN_FILEMUSTEXIST = &H1000
Public Const OFN_READONLY = &H1
Public Const OFN_HIDEREADONLY = &H4
Public Function DateiOeffnen(Optional Titel, Optional Filter, Optional DefExtension, _
Optional AktDir) As String
Dim strDateiname As String
Dim strDlgTitel As String
Dim strFilter As String
Dim strDefExtension As String
Dim strAktDir As String
Dim strNull As String
Dim OpenDlg As OPENFILENAME
strNull = Chr$(0)
strDateiname = String$(512, 0)
If IsMissing(Titel) Then
strDlgTitel = "Datei öffnen" & strNull
Else
strDlgTitel = Titel & strNull
End If
If IsMissing(Filter) Then
strFilter = "Alle Dateien" & strNull & "*.*" & strNull & strNull
Else
strFilter = Filter & strNull
End If
If IsMissing(DefExtension) Then
strDefExtension = strNull
Else
strDefExtension = DefExtension & strNull
End If
If IsMissing(AktDir) Then
strAktDir = CurDir$ & strNull
Else
strAktDir = AktDir & strNull
End If
With OpenDlg
.lStructSize = Len(OpenDlg)
.hwndOwner = Screen.ActiveForm.Hwnd
.lpstrFilter = strFilter
.nFilterIndex = 1
.lpstrFile = strDateiname
.nMaxFile = Len(strDateiname)
.lpstrInitialDir = strAktDir
.lpstrTitle = strDlgTitel
.Flags = OFN_FILEMUSTEXIST Or OFN_READONLY
.lpstrDefExt = strDefExtension
If GetOpenFileName(OpenDlg) <> 0 Then
DateiOeffnen = Left$(.lpstrFile, InStr(.lpstrFile, strNull) - 1)
Else
DateiOeffnen = ""
End If
End With
End Function
Bei einer Bestehenden DB die mit Acc 2003 erstellt wurde klappt es.
Jetzt habe ich dieses in eine neue DB kopiert Acc 2010 und bekomme folgende Meldung:
Währende der Kommunikation mit den OLE Server oder Aktive-X Steuerelementist ein Problem aufgetreten
Gruß
Johann
Hallo,
soweit ich weiß, gibt es "comdlg32.dll" nicht mehr in Win 7
oder die dll ist nicht richtig registriert.
Such die Datei im IN , kopier die ins Windows-System-Verezcihnis und registriere die mit regsvr32.exe
Oder benutze API-Funktionen...
Hallo,
Entschuldigung dafür das ich mich jetzt erst wieder melde.
Das Problem hat sich in Luft aufgelöst.
Ich habe lediglich eine neue Schaltfläche erstellt, den Code reinkopiert und alles läuft.
Was aber war die Ursache.
Das Form wurde nicht von mir erstellt und war mit den neuen Navigationsformular (Acc 2010) ausgestattet.
Hier gab es einen Button der das Einlesen erledigen sollte. Dahinter war ein Makro das nicht laufen konnte.
Ich habe das Makro gelöscht und durch meinen Code ersetzt.
Irgendwie ist aber scheinbar was vom alten Makro (oder was auch immer) hängen geblieben und hat den Fehler
verursacht.
Naja ich mag diese Navigation eh nicht und werde weiterhin mit schöne Menüformulare arbeiten.
Gruß
Johann