Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Excel Tabelle in Access Datenbank

Mitglied: Dr.Cornwallis

Dr.Cornwallis (Level 1) - Jetzt verbinden

29.03.2016 um 14:16 Uhr, 1259 Aufrufe, 9 Kommentare

Liebe Gemeinde,

ich muss aus einer Excel Tabelle Daten in einen Access Table importieren, nun möchte ich die Excel mit Access verlinken, dabei entsteht aber folgendes Problem:

Die Excel wird täglich neu generiert(SAP), darum hätte ich gerne dass die Datenbank immer die aktuelle Excel Datei verwendet.

Ist es irgendwie möglich, dass Access immer die Datei mit dem aktuellen Datum im Dateinamen verwendet? zb. "Abfrage tt.mm.jjjj.xlsx"

Danke für eure Hilfe!!
Mitglied: colinardo
LÖSUNG 29.03.2016, aktualisiert um 14:55 Uhr
Hallo Dr.Cornwallis,
mit ein bisschen VBA importierst du dir die aktuelle Excel-Tabelle des Tages in eine Tabelle in deiner Datenbank. Das Makro kannst du dann bspw. beim Öffnen einmalig ausführen lassen.
Anzupassen sind Pfad zum Ordner in dem die Excel-Dateien liegen und den Namen der Tabelle in welchem immer die aktuellen Daten hineingeschrieben werden.
Die Tabelle von welcher der Namen angegeben werden muss wird, solange sie nicht vorhanden ist, von selbst erzeugt. Ist sie bereits vorhanden werden die eventuell vorhandenen Daten in der Tabelle gelöscht und dann die Daten aus der Excel-Tabelle importiert. Im jetztigen Zustand haben die Daten in den Excel-Tabellen in der ersten Zeile Überschriften (Wenn nicht, kann das in Zeile 25 durch ändern des letzten Parameters auf False geändert werden.
01.
Sub ImportCurrentExcelData()
02.
    ' Konstanten definieren
03.
    'Pfad in dem die Excel-Dateien liegen
04.
    Const PATH = "C:\Daten\SAP"
05.
    'Name der Tabelle in das die Daten importiert werden (vorhandene Daten werden vorher gelöscht)
06.
    Const TABLENAME = "MyExcelData"
07.
    
08.
    'Variablen und Objekte initialisieren
09.
    Dim strCurrentSheet As String, def As TableDef
10.
    Set fso = CreateObject("Scripting.FileSystemObject")
11.
    'Warnungen abschalten
12.
    DoCmd.SetWarnings False
13.
    ' Pfad für aktuelle Excel-Datei zusammensetzen (Dateinameformat DD.MM.YYYY.xlsx)
14.
    strCurrentSheet = PATH & "\" & Format(Date, "dd.mm.yyyy") & ".xlsx"
15.
    'Wenn Datei exisitiert ...
16.
    If fso.FileExists(strCurrentSheet) Then
17.
        'Prüfe ob Tabelle vorhanden ist, wenn ja lösche den Inhalt
18.
        For Each def In CurrentDb.TableDefs
19.
            If LCase(def.Name) = LCase(TABLENAME) Then
20.
                DoCmd.RunSQL "DELETE FROM " & TABLENAME
21.
                Exit For
22.
            End If
23.
        Next
24.
        ' Starte dem Import der Daten (in diesem Fall haben die Spalten in der ersten Zeile Überschriften)
25.
        DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, TABLENAME, strCurrentSheet, True
26.
    Else
27.
        ' Ein Sheet mit aktuellem Datum existiert nicht
28.
        MsgBox "Ein Sheet mit dem aktuellen Datum existiert nicht", vbCritical
29.
    End If
30.
    'Warnunen wieder einschalten
31.
    DoCmd.SetWarnings True
32.
End Sub
Viele Grüße und Erfolg der Umsetzung deines Vorhabens
Grüße Uwe
Bitte warten ..
Mitglied: Dr.Cornwallis
29.03.2016 um 15:14 Uhr
Wow, vielen Dank für deine Antwort, das hilft enorm!!
Ich bin leider zum VBA Handkuss gekommen da ich der einzige EDVler im Unternehmen bin .

Besten Dank und Lg
Bitte warten ..
Mitglied: Dr.Cornwallis
30.03.2016 um 09:07 Uhr
Danke und HI Uwe,

wenn ich jetzt möchte dass die Datei als neue Tabelle importiert wird und den Inhalt der aktuellen nicht löscht, dann muss ich bei "DoCmd.RunSql "Delete FROM" ansetzen wenn ich das richtig verstanden habe?


Grüße Dr
Bitte warten ..
Mitglied: colinardo
30.03.2016, aktualisiert um 09:46 Uhr
Du lässt einfach die ganze FOR-Schleife weg (Zeilen 18-23), dann wird der Inhalt des tagesaktuellen Sheets immer an die vorhandene Access-Tabelle angehängt. Ist sie noch nicht vorhanden wird sie automatisch erstellt.
Bitte warten ..
Mitglied: Dr.Cornwallis
31.03.2016 um 14:02 Uhr
Besten Dank für deine Hilfe, das Skript funktioniert nun tadellos!!
Bitte warten ..
Mitglied: Dr.Cornwallis
31.03.2016 um 14:04 Uhr
Könntest du mir noch verraten wie ich folgendes realisieren kann:

ich möchte nicht die Excel vom aktuellen Datum, sondern die Excel von letzer Woche, kann ich da irgendwie diesen Parameter setzen?
zb. dd.mm.jjjj -7?


Danke !


Grüße

Dr.
Bitte warten ..
Mitglied: colinardo
LÖSUNG 31.03.2016, aktualisiert um 14:18 Uhr
Zitat von Dr.Cornwallis:
ich möchte nicht die Excel vom aktuellen Datum, sondern die Excel von letzer Woche, kann ich da irgendwie diesen Parameter setzen?
zb. dd.mm.jjjj -7?
Kein Problem, um mit dem Datum zu rechnen gibt es die Funktion DateAdd

Für den obigen Code änderst du dann die obige Zeile so ab:
01.
strCurrentSheet = PATH & "\" & Format(DateAdd("d",-7,Date), "dd.mm.yyyy") & ".xlsx" 
Grüße Uwe
Bitte warten ..
Mitglied: Biber
31.03.2016, aktualisiert um 14:22 Uhr
Moin, Dr.Cornwallis,

wieviel Sekunden hätte es denn gedauert,
- in der Zeile 14 mal das Format(Date, "dd.mm.yyyy") in ein Format(Date-7, "dd.mm.yyyy") zu ändern und selbst zu testen?
- mal zu versuchen, eine For-Next ode Do While-Konstruktion über alle Datumsvariationen von Date-1 bis Date-7 zu basteln?

Grüße
Biber
Bitte warten ..
Mitglied: Dr.Cornwallis
31.03.2016 um 14:35 Uhr
Hi,

@Biber: hätt ich versucht, leider sah mein Ergebnis so aus:
strCurrentSheet = PATH & "\" & "Abfrage " & Format(Date, "dd.mm.yyyy(-7)") & ".xlsx"
Es ist gar nicht so einfach wenn man noch einen Plan von VBA hat.

Das war für meine VBA skills schon ein Doktorarbeit , diese "FOR"-"NEXT" und "DO" - "WHILE sind mir einfach noch zu hoch(Tag 5).

@Uwe:

Du bist der Beste


Danke euch!

Grüße

Dr.
Bitte warten ..
Ähnliche Inhalte
Datenbanken
MS Access Datenbank
gelöst Frage von endadaDatenbanken18 Kommentare

Hey alle zusammen, ich habe folgendes Problem: Ich versuche eine Datenbank mit Access zu erstellen, die wie im Screenshot ...

Microsoft Office

Access 2016: Datenbank plötzlich defekt

gelöst Frage von honeybeeMicrosoft Office9 Kommentare

Hallo, folgendes Problem: Heute morgen hatte ich an der betroffenen Datenbank gearbeitet und sie dann ordnungsgemäß geschlossen. Zwei Stunden ...

Datenbanken

Access oder Excel Hilfe

gelöst Frage von cyberworm83Datenbanken4 Kommentare

Hallo zusammeen, ich habe mehrere Excel Tabellen: 1. Fahrtenbuch 2. Stundennachweis und wollte davon eine Access Datenbank erstellen (oder ...

SAN, NAS, DAS

Access Datenbank auf einer (Synology) NAS?

gelöst Frage von garackSAN, NAS, DAS4 Kommentare

Hallo zusammen, Es spricht doch nichts dagegen eine Access Datenbank für max. 6 Leute gleichzeitiger Zugriff auf einer Synology ...

Neue Wissensbeiträge
Sicherheit

Win10 1809 und höher erlauben nun das Sperren und Whitelisten von bestimmten Geräten

Tipp von DerWoWusste vor 8 MinutenSicherheit

Vor 1809 konnten nur Geräteklassen gesperrt werden, nun können endlich einzelne Device instance IDs gewhitelistet werden (oder andersherum: gesperrt ...

Windows 10

Hands-On: What is new in the Windows 10 November 2019 Update?

Information von DerWoWusste vor 6 StundenWindows 10

Die wenigen (aber zum Teil interessanten) Neuheiten werden in diesem Video sehr schnell erklärt und vorgeführt.

Grafik

Gute Spiele aus der Ubuntu Repository: SuperTuxKart

Information von NetzwerkDude vor 22 StundenGrafik1 Kommentar

Fall jemand die Firmenpolicy hat das man Linux Software nur aus dem default Repository installieren kann: Ich habe festgestellt ...

Datenschutz
Im Zweifel ist die Cloud immer unsicher
Information von certifiedit.net vor 23 StundenDatenschutz19 Kommentare

Hallo, wie schon mehrmals angesprochen, egal, womit der Dienst wirbt, im Zweifel ist es in der Cloud immer unsicher(er) ...

Heiß diskutierte Inhalte
Netzwerke
VPN auf Firmennetzwerk (Festplatten, Computer) einrichten, aber wie?
Frage von 81083Netzwerke34 Kommentare

Hallo, es ist ein Bisschen frustrierend. Wir haben einen 2012 R2 Server, eine Fritzbox und etwa 10-12 PC die ...

Windows Server
AD, Sysprep, Clone, SID . oh weh
Frage von heifumaWindows Server23 Kommentare

Moin, ich versuche es so kurz wie möglich zu halten: Ist-Zustand: - IT Dienstleister hat Monopol für die bei ...

Ubuntu
Ubuntu-Putty hilfe
Frage von Nickolas.GroheUbuntu23 Kommentare

Hallo Wie ändere ich einen ssh Port auf Linux Ubuntu? LG Nickolas

Windows Server
Probleme und Beratung Server 2016 Hyper V aufgesetzt durch Systemhaus
Frage von Moebler78Windows Server22 Kommentare

Hallo all, erst einmal DANKE an das tolle Board, dies hat mir schon sehr viel geholfen, bei Problem Situationen. ...