Registriert seit: 19.07.2015
Version(en): 365/2016
Hallo Michael,
die DB war ja mini. brach aber immer mit Fehler ab. Export betr. wirklich nur eine Tabelle.
Makroaufzeichnung aus Excel? Wie geht so was? "Breite doch mal den roten Faden" aus, vielleicht kann ich dazulernen. Makroaufzeichnung an sich ist bekannt, nur "was" und "wie"?
Ich möchte ungern den ganzen Codeblock hier einfügen, das würde m.A. nach doch die Geduld des Forums sprengen.
Registriert seit: 10.04.2014
Version(en): Office 2007, 2016, Win 10 64 bit
Hi Charly,
also Upload von DBs geht derzeitig nicht, dazu fehlen die Definitionen in den Foreneinstellungen, Hintertür wäre DB umbennen als Zip, oder eben als Zip speichern und dann hochladen.
Aufzeichnen in Excel:
Excel starten, Entwicklungstool öffnen (Menü), falls nicht vorhanden in den Exceloptionen freischalten Dann Macroaufzeichnung starten.
Danach alle Schritte wie bei einem Import externer Daten ausführen. Also Menü Daten, Aus Access und dann weiter. Am Ende wieder Entwicklungsumgebung öffen, Makroaufzeichnung beenden . Exceldatei mit Code speichern.
Code ansehen und ggf. da wo variable Daten nötig sind, mit Hilfe den Code anpassen.
Mit freundlichen Grüßen :) Michael
Registriert seit: 19.07.2015
Version(en): 365/2016
Seltsam. Der Hochladeversuch bricht mit Fehler ab. Die Datei ist - trotzdem nur 1 Zeile - 8GB groß und hat die Endung *.accdb - Access365 bzw. 2016.
Irgendwas passt hier nicht (?).
Registriert seit: 10.04.2014
Version(en): Office 2007, 2016, Win 10 64 bit
Wie bereits geschrieben, geht derzeitig nicht. Habe Admins gebeten, zusätzliche Typen frei zu geben. Also etwas Geduld oder eben über den Umweg Zip.
Würde aber mal den Excelweg gehen und schaun was da geht.
Mit freundlichen Grüßen :) Michael
Registriert seit: 19.07.2015
Version(en): 365/2016
(19.01.2016, 19:07)Zwergel schrieb: Hi Charly,
also Upload von DBs geht derzeitig nicht, dazu fehlen die Definitionen in den Foreneinstellungen, Hintertür wäre DB umbennen als Zip, oder eben als Zip speichern und dann hochladen.
Aufzeichnen in Excel:
Excel starten, Entwicklungstool öffnen (Menü), falls nicht vorhanden in den Exceloptionen freischalten Dann Macroaufzeichnung starten.
Danach alle Schritte wie bei einem Import externer Daten ausführen. Also Menü Daten, Aus Access und dann weiter. Am Ende wieder Entwicklungsumgebung öffen, Makroaufzeichnung beenden . Exceldatei mit Code speichern.
Code ansehen und ggf. da wo variable Daten nötig sind, mit Hilfe den Code anpassen. Schau ich mir morgen an. Danke. Jetzt steht Abendessen auf dem Programm und danach muss ich mich dringend hinlegen. :@ Mit Import sollte ich doch noch zurechtkommen. Kann aber etwas dauern, bis ich morgen dazukomme. Der Tag ist schon wieder reichlich gefüllt.
Registriert seit: 10.04.2014
Version(en): 2016 + 365
Hi, (19.01.2016, 19:12)Zwergel schrieb: Wie bereits geschrieben, geht derzeitig nicht. Habe Admins gebeten, zusätzliche Typen frei zu geben. Also etwas Geduld oder eben über den Umweg Zip.
Würde aber mal den Excelweg gehen und schaun was da geht. ich mache es heute abend nach dem Schwimmen. Welche Datei-Typen/-Erweiterungen sind denn wünschenswert?
Registriert seit: 10.04.2014
Version(en): 2016 + 365
19.01.2016, 19:18
(Dieser Beitrag wurde zuletzt bearbeitet: 19.01.2016, 23:01 von Rabe.)
(19.01.2016, 19:09)karomue schrieb: Seltsam. Der Hochladeversuch bricht mit Fehler ab. Die Datei ist - trotzdem nur 1 Zeile - 8GB groß und hat die Endung *.accdb - Access365 bzw. 2016.
Irgendwas passt hier nicht (?). Aber auch wenn der Upload freigegeben ist, werde ich eine 8GB große Datei nicht zum upload freigeben! Das wirst DU auch nicht hochladen wollen und es wird sich auch niemand runterladen!
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen, ja, bei 8 GB müssen wir uns etwas anderes einfallen lassen. Sind da Bilder drin oder warum ist die so groß? Eventuell hast Du eine Dropbox-Account mit ausreichend Speicher? Alternativ könnte ich Dir was freigeben, wo Du an anderer Stelle was hochladen kannst und ich kann das freigeben. Hoffe ich, hab's noch nicht probiert.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Charly,
accdb gehen jetzt, aber nur 2 MB. Meintest Du wirklich 8 GB oder sind es 8 MB? Früher gab es mal eine Option "Datenbank komprimieren", gibt es die eventuell noch?
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 13.04.2014
Version(en): 365
20.01.2016, 09:41
(Dieser Beitrag wurde zuletzt bearbeitet: 20.01.2016, 09:43 von BoskoBiati.)
Hallo,
ich habe hier ein Makro, welches eine Datei nach Excel exportiert. Alles, was mit ds! anfängt, beinhaltet die Felder, die in der Tabelle vorhanden sind. tab1 sind nur Dummy-Namen:
Sub ExcelExport()
Dim xlApp As Object, xlBook As Object, xlSheet As Object, xlBook2 As Object, xlSheet2 As Object, xlsheet1 As Object Const FullExcelDatName = "D:\Dateipfad + Name.xlsm" Const FullExcelDatName2 = "D:\Dateipfad + Name Sicherung.xlsm" Const ExcelTabName1 = "Exctab1" Const ExcelTabName2 = "Exctab2" Const ExcelTabName3 = "Exctab3" Const ExcelTabName4 = "Tab1" Const ExcelTabName5 = "Tab5" Const AccessTabName1 = "tblTab1" Const AccessTabName2 = "tblTab2" Const AccessTabName3 = "tblTab3" Const xlUp = -4162 Const xlByRows = 1 Const xlPrevious = 2 Dim rng As Range Dim loZeile As Long Dim AktExcelZeile As Long Dim AktDb As DAO.Database, ds As DAO.Recordset Dim LastRec As Long Set AktDb = CurrentDb ' Excel datei öffnen ohne Fehlerbehandlung On Error Resume Next Set xlApp = GetObject(, "Excel.Application") If xlApp Is Nothing Then Set xlApp = CreateObject("Excel.Application") End If xlApp.Visible = True On Error GoTo 0 Set xlBook = xlApp.Workbooks.Open(FullExcelDatName) Set xlSheet = xlBook.Sheets(ExcelTabName1) Set xlsheet1 = xlBook.Sheets(ExcelTabName4) Set xlZelle = xlSheet.Cells.Find("*", , , , xlByRows, xlPrevious) If Not xlZelle Is Nothing Then AktExcelZeile = xlZelle.Row + 1 End If LastRec = AktExcelZeile - 2 Set ds = AktDb.OpenRecordset(AccessTabName1) ds.MoveFirst ds.Move (LastRec) ds.MoveLast loZeile = ds!LFDNR If loZeile > LastRec Then ds.MoveFirst ds.Move (LastRec) Do Until ds.EOF xlSheet.Cells(AktExcelZeile, 1).Value = ds!LFDNR xlsheet1.Cells(AktExcelZeile, 1).Value = ds!LFDNR xlSheet.Cells(AktExcelZeile, 2).Value = ds!Kennziffer xlSheet.Cells(AktExcelZeile, 3).Value = ds!MANr xlSheet.Cells(AktExcelZeile, 4).Value = ds!EINGDATUM xlSheet.Cells(AktExcelZeile, 5).Value = ds!KundenID xlSheet.Cells(AktExcelZeile, 6).Value = ds!ArtNr AktExcelZeile = AktExcelZeile + 1 ds.MoveNext Loop Set xlSheet = Nothing Set xlSheet = xlBook.Sheets(ExcelTabName2) Set xlZelle = xlSheet.Cells.Find("*", , , , xlByRows, xlPrevious) If Not xlZelle Is Nothing Then AktExcelZeile = xlZelle.Row + 1 End If Set ds = AktDb.OpenRecordset(AccessTabName2) ds.MoveLast LastRec = ds!KundenID ds.MoveFirst loZeile = ds.RecordCount If loZeile > AktExcelZeile - 2 Then ds.Move (AktExcelZeile - 2) Do Until ds.EOF xlSheet.Cells(AktExcelZeile, 1).Value = ds!KundenID xlSheet.Cells(AktExcelZeile, 2).Value = ds!KundeName xlSheet.Cells(AktExcelZeile, 3).Value = ds!KundeStr xlSheet.Cells(AktExcelZeile, 4).Value = ds!KundeLand xlSheet.Cells(AktExcelZeile, 5).Value = ds!KundePLZ xlSheet.Cells(AktExcelZeile, 6).Value = ds!KundeOrt AktExcelZeile = AktExcelZeile + 1 ds.MoveNext Loop End If Set xlSheet = Nothing Set xlSheet = xlBook.Sheets(ExcelTabName3) Set xlZelle = xlSheet.Cells.Find("*", , , , xlByRows, xlPrevious) If Not xlZelle Is Nothing Then AktExcelZeile = xlZelle.Row + 1 End If Set ds = AktDb.OpenRecordset(AccessTabName3) ds.MoveLast LastRec = ds!ArtNr ds.MoveFirst loZeile = ds.RecordCount If loZeile > AktExcelZeile Then ds.Move (AktExcelZeile - 2) Do Until ds.EOF xlSheet.Cells(AktExcelZeile, 1).Value = ds!ArtNr xlSheet.Cells(AktExcelZeile, 2).Value = ds!ArtName AktExcelZeile = AktExcelZeile + 1 ds.MoveNext Loop End If Set xlSheet = Nothing Set xlSheet2 = Nothing 'Excel speichern xlBook.Save If Dir(FullExcelDatName2) <> "" Then Kill (FullExcelDatName2) Set rng = xlBook.Sheets("Tab1").Range("A1:T2000") rng.Copy rng.PasteSpecial (xlPasteValuesAndNumberFormats) xlApp.DisplayAlerts = False For loZeile = xlBook.Sheets.Count To 1 Step -1 If xlBook.Sheets(loZeile).Name <> "Tab1" Then xlBook.Sheets(loZeile).Delete Next xlApp.DisplayAlerts = True xlBook.SaveAs (FullExcelDatName2) End If xlBook.Close Set xlSheet = Nothing Set xlBook = Nothing End Sub
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr! Über Rückmeldungen würde ich mich freuen.
|