Einzelne Angaben aus Access in Excel einbetten
Halli hallo!
ich weiss, das thema ist veraltet etc.pp aber mein problem ist, dass ich KEINE ahnung vom programmieren hab... habe versucht mit all den im Netz kursierenden Codeschnipsel was brauchbares zu basteln, jedoch ohne jegliche erfolg...
Die idee ist die:
Ich habe in meiner Access Datenbank verschiedene Angaben zu Kunden und Aufträgen jener. Nun möchte ich es möglich machen, die nötigen Angaben, die auch im Access vorhanden sind (wie etwa Name, Vorname, Abteilung, Adresse) in unsere Lieferscheinvorlage einzubauen... sodass wir am ende per Knopfdruck einen Lieferschein offen haben mit der entsprechenden Anschrift...
Am schönsten wäre dann noch das abspeichern in einen Ordner, evtl auch mit generiertem namen...
Kann mir da jemand helfen??
Antwort schreiben
Antwort 1 von Marie vom 28.04.2021, 01:07 Options
Das ist alles kein Problem, ne Menge Arbeit aber und Du kannst nicht erwarten, dass Dir das hier jemand fertig programmiert. Also fang mal an und probier mal alles aus und wenn Du Detailfragen hast, dann fragste hier wieder. Postest am besten den Code hier rein, der nicht so funktioniert wie Du es willst und wir helfen Dir den Fehler zu suchen.
Klar helfen wir Dir dann
Gruß Marie
Antwort 2 von RaHi vom 28.04.2021, 19:23 Options
Hallo steeh,
um mal eine Idee zu bekommen, poste mal aus welcher Tabelle du welches Feld in welche Zelle eines Sheets einer Exceltabelle einfügen willst. Ideal wären Angaben wie
- Exceltemplate (also die Datei mit der Excelvorlage)
- Exceldatei (wohin soll die ausgefüllte Vorlage geschrieben werden
- Tabellenname (aus welcher Tabelle bzw. Abfrage sollen die Daten kommen)
- eine Liste mit Sheetname, Spalte, Reihe und Feld aus der Tabelle
Ich habe da so eine generische Idee...
@Marie: Ich muss dir Recht geben, dass man nicht erwarten kann, hier alles komplett programmiert zu bekommen, aber ich kann so was gerade selbst gebrauchen ;-)
Gruß
Ralf
Antwort 3 von Marie vom 28.04.2021, 21:10 Options
Hi Ralf, ich hab sowas, also frag halt konkreter wo Du hängst, gilt auch für Dich :-))
Gruß Marie
Antwort 4 von steeh vom 29.04.2021, 09:35 Options
ok also meine tabelle wäre TabAnsprechpers, daraus müsste ich Feld Name, Vorname, Adresse, PLZ, Ort übergeben.
Zieldatei wäre in etwa Z:\verwaltung\lieferscheine\vorlage.xls
Name Vorname muss nach A3
Adresse muss nach A4
PLZ Ort muss nach A5
dann sollte das ganze mit der Auftragsnummer abgespeichert werden die aus TabAuftagsNr Feld AuftragsNr geholt wird... also zb 9034.xls
am schönsten wäre, wenn der name schon vorhanden ist einfach ein (1) dazu etc...
tut mir leid, bin momentan noch zu hause, werde meinen bisherigen code ma nachschieben sobald ich im geschäft bin!
Antwort 5 von steeh vom 29.04.2021, 10:46 Options
ok hier mal, was ich bisher habe... bitte nicht auslachen, ich hab geschrieben, dass ich KEINE ahnung habe von dem mist... ^^
wäre nett wenn ihr mich auf die fehler hinweisen würdet und evtl nen kurzen input für mich habt wie das in dieser schleife überhaupt passiert bzw. passieren sollte... zudem habe ich darin auch nichts hinbekommen weil ich auch die befehle zum ein/auslesen ich kenne :(((((
Private Sub Befehl31_Click()
Sub ExportInExcel(pvarZahl1 As Variant, pvarZahl2 As Variant)
Dim appXL As New Excel.Application
Dim wbDeineDatei As Workbook
Dim wsTabelle As Worksheet
Set wbLS = appXL.Workbooks.Open("C:\tt\Vorlage.xlsx")
Set wsTabelle = wbDeineDatei.Worksheets(1)
With wbLS
.Visible = True
.ActiveSheet.Name = "Arbeitsblatt1"
Set rs = db.OpenRecordset(Me.RecordSource, dbOpenSnapshot)
For i = 0 To rs.Fields.Count - 1
.Cells(1, i + 1) = rs.Fields(i).Name
Next i
.Range("A2").SELECT
.Selection.CopyFromRecordset rs
End With
wbLS.Close
Set wbDeineDatei = Nothing
appXL.Quit
End Sub
End Sub
Antwort 6 von Marie vom 30.04.2021, 00:52 Options
Also bevor ich irgendetwas ausprobiere und Dir helfe: Wieso willst Du
Zitat:
Name Vorname muss nach A3
Adresse muss nach A4
PLZ Ort muss nach A5
?
Normal hast Du Zeilenüberschriften in Excel und benutzt Spalte A für Nachname B für Vorname C für PLZ D für Ort.
Du Kannst doch nicht als Zeilenüberschriften Kunde 1 Kunde 2 Kunde 3 machen?
Bitte sag mir zuallererst, ob das auch okay ist, dass die Spalte A für Nachname usw steht, wie oben beschrieben.
Ferner solltest Du das Wort Name nicht benutzen, weil das ein in VBA benutzter Ausdruck ist, also lieber Zuname oder Nachname.
Gruß Marie
Antwort 7 von Marie vom 30.04.2021, 00:58 Options
Ja, jetzt fällt mir ein weshalb Du das so wolltest. Du willst immer nur einen Kunden einlesen in Excel? Ich habe das so gemacht, dass ich beim Öffnen der Exceldatei alle Kunden in ein anderes Arbeitsblatt einlese und dann in excel ein Kombifeld habe, wo ich auswähle wer eine Rechnung oder einen Lieferschein bekommt. Ich kann also dann ohne jedesmal aus Access neu einzulesen 10 Rechnungen schreiben, indem ich die fertige Rechnung abspeichere, das Arbeitsblatt leere und den nächsten Kunden auswähle ohne neu die Daten aus Access auszulesen.
Gruß Marie
Antwort 8 von steeh vom 04.05.2021, 08:22 Options
das klingt eigentlich ganz cool, aber kansnt du mir davon mal einen code zeigen? wenn ich weiss wo der code hingehört werd ich das wohl hinbringen... aber leider bin ich mindestens auf beispielcode angewiesen... :(
Antwort 9 von RaHi vom 06.05.2021, 19:54 Options
Hallo steeh,
ich habe mal einen generischen tabellengesteuerten Ansatz implementiert. Unter dem Link findest du eine MS Access 2000 Datenbank "data2excel.mdb"
http://www.file-upload.net/download-1625218/data2excel.mdb.htmlNach dem Öffnen findest du zwei Menüenträge mit Formularen. Im Formular "frm_excelmain_edit" kannst du neben dem SQL-Statement, der Excelvorlage und der Zieldatei, die Felder aus dem SQL-Statement Feldern in Excel zuordnen, wobei du auch das Sheet angeben musst.
Ich habe zwei Beispiele drin gelassen aber die Vorlagen raus genommen (geht auch ohne Vorlage).
Im zweiten Formular "frmDatenNachExcel" kannst du dann anhand meiner Beispieldaten die Zuordnungen ausprobieren. Falls es zu schwierig ist so ein SQL-Code zu basteln, kannst du auch eine Abfrage graphisch erstellen und den Code im SQL-Modus raus kopieren. Achte aber darauf, dass du das Semikolon am Ende löschst, da ich noch eine Where-Bedingung anfügen muss.
Das Ganze hat keine große Fehlerbehandlung, ist aber offen für nette Erweiterungen.
Eventuell ist das "oversized" für deine Anwendung, allerdings kannst du das Ganze ja individuell abändern. Sag mir bitte, ob du was damit anfangen konntest. Es ist immer so eine Sache, on man meinen Code auch versteht ;-)
Viel Spaß beim Test
Ralf
Antwort 10 von steeh vom 08.05.2021, 08:17 Options
danke vielmals!! :D ich werde mich gleich mal dahinter machen und dir, sobald ich das mal angeschaut habe feedback geben! =)
Antwort 11 von steeh vom 08.05.2021, 09:47 Options
bitte nich hauen, aber was muss ich jetzt mit dem modul anfangen?? ^^
vlt kannst du mir helfen das ganze für meine db umzuschreiben...
ich möchte schlussendlich daten aus der tabelle tabAnsprechpers ->[Name],[Vorname],[Abteilung][Adresse],[PLZ],[Ort] übertragen in ein excel sheet, welches den pfad C:\tt\vorlage.xls hat...
Auf dem formular FrmAufträge habe ich ein UF, AufträgeUF (abfrage), wo eine markierte Zeile (also ein markierter auftrag) per druck auf knopf22 an die felder A3,A4 und A5 übergeben wird...
Antwort 12 von RaHi vom 09.05.2021, 10:32 Options
Hallo steeh,
kopiere alles ausser der data-Tabelle aus der MDB von file-upload in deine MDB und passe die Eintragungen in den beiden Formularen an. Hast du die beiden Beispiele von mir ausprobiert und passt das auf deine Anforderungen?
Gruß
Ralf
Antwort 13 von steeh vom 11.05.2021, 08:15 Options
hmm ich habe in der zip nur ein modul... daher kann ich den code nicht wirklich gut nachvollziehe nur anhand von dem modul...
Antwort 14 von RaHi vom 11.05.2021, 19:33 Options
Hallo steeh,
ich weiß nicht was du geöffnet hast, aber wenn du den obigen Link verwendest, bekommst du den Download einer MDB (keine ZIP!) angeboten, der Dateiname ist "Data2Excel.mdb". Ich hab's ausprobiert, alles ohne Probleme!
Gruß
Ralf