MS-Office-Forum
Google
   

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > Microsoft Access
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 10.02.2010, 12:08   #1
tschai
MOF User
MOF User
Standard Acc2007 - FileDialog

Ich habe eine ziemliche Anfängerfrage....es ist einfach zu lange her, dass ich mit Access/VBA gearbeitet habe...
Ich möchte einen FileDialog öffnen und eine Exceldatei auswählen können. Deren Daten sollen an eine vorhandene Tabelle in Access angehängt werden. Felder in excel und access sind identisch..
Wer kann mir helfen?
tschai

__________________

Grüsse aus Berlin,
Miri

Windows 7, Access 2007, VB 6.5
tschai ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.02.2010, 12:20   #2
Atrus2711
MOF Guru
MOF Guru
Standard

Hi,

das sind zwei Teilprobleme: Dateiauswahl und Import

Zunächst setze einen verweis auf MS Office. Dann geht:
Code:

Dim dlg As FileDialog
Dim strFileName As String
Set dlg = FileDialog(msoFilePicker) 'Dialog öffnen
If dlg.Show = -1 Then 'Bei Auswahl
  strFileName = dlg.SelectedItems(1) 'Dateinamen lesen
  'Importieren
  DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "Zieltabelle", strFileName, False
End If

Set dlg = Nothing
Bei der TransferSpreadsheetzeile wirst du evtl. noch anpassen müssen (Typ, Zieltabelle, Feldnamen in 1. Zeile etc).

Das gefährlichste wird die Annahme sein, die Feldstrukturen seien gleich. Excel kennt keine Datentypen, daher deutet Access die Feldinhalte. Diese Deutung kann fehlschlagen. Ich würde im Zweifelsfall als csv exportieren und die csv imporiteren; dabei kann man die Datentypen erzwingen statt erraten lassen (Stichwort Importspezifikation).

Geändert von Atrus2711 (10.02.2010 um 12:24 Uhr).
Atrus2711 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.02.2010, 12:25   #3
tschai
Threadstarter Threadstarter
MOF User
MOF User
Standard

ich hab den code mal übernommen und beim clicken ausführen ausgewählt.
der button reagiert nicht....???

habe übrigens access 2007...meine signatur war total veraltet...

__________________

Grüsse aus Berlin,
Miri

Windows 7, Access 2007, VB 6.5
tschai ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.02.2010, 12:28   #4
Atrus2711
MOF Guru
MOF Guru
Standard

Das läuft auch unter 2007, gerade getestet.

Wenn der Button nicht reageirt, hat er deinen Wunsch nicht verstanden. Bring es ihm wie folgt bei:
  1. Entwurfsmodus,
  2. Button markieren,
  3. Eigenschaft "BeimKlicken" aufsuchen,
  4. Cursor da reinsetzen,
  5. dortiges Dropdown auf Ereignisprozedur einstellen,
  6. ...-Symbol dahinter anklicken
  7. Meinen Code in die VBA-Routine reinkopieren.
Atrus2711 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.02.2010, 12:42   #5
tschai
Threadstarter Threadstarter
MOF User
MOF User
Standard

genau so hab ich es gemacht und es tut sich nichts... ;(((

__________________

Grüsse aus Berlin,
Miri

Windows 7, Access 2007, VB 6.5
tschai ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.02.2010, 12:57   #6
Atrus2711
MOF Guru
MOF Guru
Standard

Genauso hab ich es gemacht und es tut. Siehe Anlage...
Angehängte Dateien
Dateityp: zip delme.zip (36,7 KB, 43x aufgerufen)
Atrus2711 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.02.2010, 14:46   #7
alfini
MOF User
MOF User
Standard

Hallo

diesen Code habe ich aus der Access-Hilfe kopiert.
Dieser Code funktioniert bei mir wie Atrus2711 geschrieben hat.
Ich hoffe es hilft weiter.
Gruß alfini

'Declare a variable as a FileDialog object.
Dim fd As FileDialog

'Create a FileDialog object as a File Picker dialog box.
Set fd = Application.FileDialog(msoFileDialogFilePicker)

'Declare a variable to contain the path
'of each selected item. Even though the path is a String,
'the variable must be a Variant because For Each...Next
'routines only work with Variants and Objects.
Dim vrtSelectedItem As Variant

'Use a With...End With block to reference the FileDialog object.
With fd

'Use the Show method to display the File Picker dialog box and return the user's action.
'The user pressed the action button.
If .Show = -1 Then

'Step through each string in the FileDialogSelectedItems collection.
For Each vrtSelectedItem In .SelectedItems

'vrtSelectedItem is a String that contains the path of each selected item.
'You can use any file I/O functions that you want to work with this path.
'This example simply displays the path in a message box.
MsgBox "The path is: " & vrtSelectedItem

Next vrtSelectedItem
'The user pressed Cancel.
Else
End If
End With

'Set the object variable to Nothing.
Set fd = Nothing

End Sub
alfini ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.02.2010, 14:49   #8
Atrus2711
MOF Guru
MOF Guru
Standard

Wenn sich beim Klick gar nichts tut, glaube ich eher, dass die Einbettung in das richtige Ereignis das Problem war... warten wir ab, was der Fragesteller sagt...
Atrus2711 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.02.2010, 19:57   #9
tschai
Threadstarter Threadstarter
MOF User
MOF User
Standard

ich versteh das auch alles nicht..hatte auch schon den code aus der access hilfe probiert.

@atrus2711: deine datei hat funktioniert. ich habe es genauso gemacht...anscheinend kommt der click nicht beim code an ???

jetzt habe ich aber mal dein formular in meine datenbank kopiert...und es geht.
und bei meinem formular bekomme ich beim click folgende info (methode filedialog für das objekt _application ist fehlgeschlagen) zu dieser zeile im code:
Set dlg = FileDialog(msoFilePicker) 'Dialog öffnen

sehr merkwürdig alles...

__________________

Grüsse aus Berlin,
Miri

Windows 7, Access 2007, VB 6.5
tschai ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.02.2010, 20:03   #10
Josef P.
MOF Guru
MOF Guru
Standard

Eventuell fehlt bei dir "Option Explicit" im Code.

Welchen Wert hat "msoFilePicker"? Ich nehme an, es entsteht folgendes:
Set dlg = FileDialog(0)
Im Beispiel von Martin sieht das so aus:
Code:

Set dlg = FileDialog(msoFileDialogFilePicker)
msoFileDialogFilePicker hat den Wert 3.
Josef P. ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.02.2010, 20:19   #11
tschai
Threadstarter Threadstarter
MOF User
MOF User
Standard

das war es!!!
Danke...
und woher wißt ihr, dass bei mir kein option explicit steht??? wofür braucht man das überhaupt?
DANKE DANKE DANKE!

__________________

Grüsse aus Berlin,
Miri

Windows 7, Access 2007, VB 6.5
tschai ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.02.2010, 21:02   #12
JPA
MOF Koryphäe
MOF Koryphäe
Standard

big brother is watching u
:-)
JPA ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.02.2010, 21:18   #13
Josef P.
MOF Guru
MOF Guru
Standard

Zitat:

und woher wißt ihr, dass bei mir kein option explicit steht??? wofür braucht man das überhaupt?

Um solche Fehler erst gar nicht auftreten zu lassen.

Mach einfach einen Versuch: stelle Option Explicit ein und verwende msoFilePicker statt msoFileDialogFilePicker. Anschließend versucht du die Anwendung zu kompilieren. Es sollte nun eine Compiler-Meldung kommen, dass msoFilePicker nicht definiert ist.

Ich kann dir nur empfehle, immer "Option Explicit" einzusetzen. Damit beseitigst du eine große Fehlerquelle, da du damit Tippfehler u. ä. ausschließt.
Josef P. ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:46 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.

Copyright ©2000-2010 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günther Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.
Beachten Sie bitte auch unsere Nutzungsbedingungen.