Access 2007 / VBA / Datenbanken Programmierung ???

  • Access

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von Adam81.

    Access 2007 / VBA / Datenbanken Programmierung ???

    Hallo Leute,

    ich hoffe ihr könnt mir bei meinem Problem helfen.
    Ich programmiere mit Visual Basic und versuche xls, xlsx, txt uns csv Dateien einzulesen
    und als Tabelle in Access 2007 listen zu lassen. Es gelingt mir leider nicht nach mehrmaligen
    Versuchen. Habt Ihr einen Lösungsvorschlag für mich?
    Und wie kann ich Dateiendungen überprüfen? Mit welchem Objekt und welche
    Objektbibliothek benötige ich hierfür?

    Vielen Dank

    Adam

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    1. Datei in DataTable einlesen und in einem DataGridView anzeigen lassen.
    2. wenn das funktioniert, die DataTable als Tabelle in Access speichern.

    Sry VB6 ... hatte vb.net gelesen

    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Schamash“ ()

    @Adam81 Mit folgendem Trick ist das ganz easy:
    Speichere Deine Daten Zeile für Zeile mit einem Tabulator als Trennzeichen in einer *.XLS benannten Datei.
    Dann doppelklickst Du im Explorer drauf oder Du rufst sie auf mit Process.Start(PFAD & "MyTable.xls").
    Excel kommt mit folgender Fehlermeldung:

    Wenn Du da auf Ja klickst, hast Du Deine Tabelle geladen. :thumbsup:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RodFromGermany der will die aber nicht in Excel sondern in Access einfügen :)
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    Also geht es um VB6, VB.NET oder direkt in Access mit VBA?

    Möchtest du einen Dialog um die Datei auszuwählen? Was hat denn bei deinen versuchen nicht geklappt?
    Am besten postest du diese mal.
    Das ist meine Signatur und sie wird wunderbar sein!
    Es geht um VBA in Access. Ich muss dazu sagen, bin extremer Anfänger. Für Lösungsvorschläge bin ich sehr dankbar.

    Hier der Quelltext:

    Private Sub BtnImport_Click()
    Dim sPfad As String
    Dim sImport_Tabelle As String
    Dim tPfad As String
    Dim tImport_Tabelle As String
    Dim cPfad As String
    Dim cImport_Tabelle As String
    sPfad = CurrentProject.Path
    tPfad = CurrentProject.Path
    cPfad = CurrentProject.Path
    sImport_Tabelle = "_import_x_Tabelle"
    tImport_Tabelle = "_import_t_Tabelle"
    cImport_Tabelle = "_import_c_Tabelle"

    Dim fso As New FileSytemObject
    Dim ts As TextStream
    Set ts = fso.CopyFile(CurrentProject.Path,CurrentProject.Path, True)

    Dim sImport_Datei As String
    Dim tImport_Datei As String
    Dim cImport_Datei As String
    Dim objFiledialog As FileDialog
    Set objFiledialog = FileDialog(msoFileDialogFilePicker)
    objFiledialog.AllowMultiSelect = False
    objFiledialog.ButtonName = "Importieren"
    objFiledialog.Filters.Add "Freigabe-Dateien", "*.xls;*.xlsx;*.txt;*.csv"
    objFiledialog.InitalFileName = sPfad
    objFiledialog.InitalFileName = tPfad
    objFiledialog.InitalFileName = cPfad

    If objFiledialog.Show() = True Then
    sImport_Datei = objFiledialog.SelectedItems(1)
    tImport_Datei = objFiledialog.SelectedItems(1)
    cImport_Datei = objFiledialog.SelectedItems(1)
    End If

    Set objFiledialog = Nothing
    If Right(FileName, 4) = ".xls" Then
    DoCmd.TransferSpreadsheet acImportDelim, sImport_Tabelle, sImport_Datei, True
    ElseIf Right(Filename, 4) = ".xlsx" Then
    DoCmd.TransferSpreadsheet acImportDelim, sImport_Tabelle, sImport_Datei, True
    ElseIf Right(Filename, 4) = ".txt" Then
    DoCmd.TransferSpreadsheet acImportDelim, tImport_Tabelle, tImport_Datei, True
    ElseIf Right(Filename, 4) = ".csv" Then
    DoCmd.TransferSpreadsheet acImportDelim, cImport_Tabelle, cImport_Datei, True
    End If
    End Sub

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Adam81“ ()

    Visual Basic-Quellcode

    1. Private Sub BtnImport_Click()
    2. Dim Pfad As String
    3. Dim importPath As String
    4. Dim sImport_Tabelle As String
    5. Dim tImport_Tabelle As String
    6. Dim cImport_Tabelle As String
    7. Pfad = CurrentProject.Path
    8. sImport_Tabelle = "_import_x_Tabelle"
    9. tImport_Tabelle = "_import_t_Tabelle"
    10. cImport_Tabelle = "_import_c_Tabelle"
    11. Dim objFiledialog As FileDialog
    12. Set objFiledialog = FileDialog(msoFileDialogFilePicker)
    13. objFiledialog.AllowMultiSelect = False
    14. objFiledialog.ButtonName = "Importieren"
    15. objFiledialog.Filters.Add "Freigabe-Dateien", "*.xls;*.xlsx;*.txt;*.csv"
    16. objFiledialog.InitialFileName = Pfad
    17. If objFiledialog.Show() = True Then
    18. importPath = objFiledialog.SelectedItems(1)
    19. Set objFiledialog = Nothing
    20. If right(importPath, 4) = ".xls" Or right(importPath, 5) = ".xlsx" Then
    21. DoCmd.TransferSpreadsheet acImportDelim, sImport_Tabelle, importPath, True
    22. ElseIf right(importPath, 4) = ".txt" Then
    23. DoCmd.TransferText acImportDelim,";", tImport_Tabelle, importPath
    24. ElseIf right(importPath, 4) = ".csv" Then
    25. DoCmd.TransferText acImportDelim,";", cImport_Tabelle, importPath
    26. End If
    27. End If
    28. End Sub


    Bei DoCmd.TransferText musst du ein bissl schauen wegen dem Delimiter. Eventuell speicherst du dir vorher eine Importspezifikation in Access manuell ab und gibst diese dann an (als 2. Parameter)
    LG
    Das ist meine Signatur und sie wird wunderbar sein!