valume91
Goto Top

Access Daten in bestimmtes Excel Feld ausgeben

Wie kann ich einen DS in Access per Button in ein bestimmtes Feld in einer Excel Datei einfügen?

Tag zusammen

Ich habe ein Formular in Access (frm_Hauptfehlermeldung).
Nun soll per Button der aktuelle DS in bestimmte Felder einer Excel Datei eingefügt werden.
Also z.B. :
Fehler1 --nach--> B3
Fehler2 --nach--> C2
usw.

Geht das? Und wenn ja, wie?

Lg Valume

Content-Key: 131219

Url: https://administrator.de/contentid/131219

Printed on: April 24, 2024 at 23:04 o'clock

Mitglied: 83928
83928 Dec 08, 2009 at 14:30:13 (UTC)
Goto Top
Ja geht. Such mal nach "CreateObject" in der Officehilfe. Da ist AFAIK auch ein Codebeispiel.
Ansonsten wär es für eine Antwort nicht schlecht zu wissen welche Versionen Du ......................
Member: Valume91
Valume91 Dec 08, 2009 at 15:16:45 (UTC)
Goto Top
Hi abaaba

Erstmal danke für die Antwort!
Ich habe mir den Createobject Befehl mal angesehen. Jedoch werde ich nicht richtig schlau daraus...
Ein konkretes Beispiel wäre nett.

Gruss Valume

Edit:
Ich verwende MS Access 2003 mit Microsoft Visual Basic 6.0
Mitglied: 83928
83928 Dec 08, 2009 at 15:23:39 (UTC)
Goto Top
Ich schau nachher mal ob ich was finde.
Excel ist auch 2003? Tabelle/Mappe soll neu angelegt werden oder besteht schon?
Member: Valume91
Valume91 Dec 08, 2009 at 15:29:08 (UTC)
Goto Top
Hi

Ja Excel ist auch 2003. Tabelle/Mappe Bestehen schon.
Die gewünschten Felder sollen "einfach" aus Access abgefüllt werden.

Gruss Valume
Mitglied: 83928
83928 Dec 08, 2009 at 18:26:40 (UTC)
Goto Top
Hier der leicht abgeänderte Code aus der Hilfe



Dim xlAnw As Excel.Application
Dim xlBuch As Excel.Workbook
Dim xlArbBlatt As Excel.WorkSheet

Set xlAnw = CreateObject("Excel.Application")
Set xlBuch = xlAnw.Workbooks.Open("c:\dest.xls") 'Die Excel-Datei öffnen
Set xlArbBlatt = xlBuch.Worksheets(1) 'erstes Sheet

xlArbBlatt.Range("A1").Value = "Test" 'In Zelle A1 einen Wert eintragen


xlBuch.Save
xlAnw.Quit

Set xlBuch = Nothing
Set xlArbBlatt = Nothing
Set xlAnw = Nothing


Edit: Du musst unter ->Extras-> Verweise im VBA-Editor ein Hacken bei Mircrosoft Excel Object library (oder so ähnlich) machen
Member: Valume91
Valume91 Dec 09, 2009 at 07:32:49 (UTC)
Goto Top
Danke! Ich probiers gleich aus.
Member: Valume91
Valume91 Dec 09, 2009 at 13:58:29 (UTC)
Goto Top
Hi abaaba

Hat prima funktioniert! Besten Dank!
Jetzt muss ich noch herausfinden wie ich die im Formular
eingebundenen Endlosunterformulare exportieren kann.

lg Valume
Mitglied: 83928
83928 Dec 09, 2009 at 14:22:42 (UTC)
Goto Top
Erstell Dir ein Recordset-objekt, fülle es mit Daten und benutze die copyFromRecordset-Methode um die Daten einzufügen.

Hier ein paar Beispielzeilen (aus einem Excel-Makro) was die Daten aus einer Access97-DB holt


Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset

cn.Provider = "Microsoft.Jet.OLEDB.4.0"
cn.ConnectionString = "Data Source=\\Server\Datenbank.mdb"
cn.Open
strSQL = "SELECT * from Blablabla"
With rs
.CursorType = adOpenDynamic
.LockType = adLockPessimistic
.CursorLocation = adUseClient
.Open strSQL, cn
End With
Cells(4, 1).CopyFromRecordset rs
Member: Valume91
Valume91 Dec 14, 2009 at 07:41:49 (UTC)
Goto Top
Hi abaaba

Danke für deine Hilfe!
Ich verstehe jedoch nicht ganz:
- Wo soll ich den Code einfügen? Access oder Excel?
- Wenn Excel, wie mache ich das da? Ich hab bisher nur mit Access VBA gearbeitet

Gruss Valume

Edit sagt:
Ich bräuchte das ganze natürlich für Access bzw. Excel 2003, ändert sich dabei am Code etwas?
Member: Valume91
Valume91 Dec 14, 2009 at 08:51:45 (UTC)
Goto Top
Hey abaaba

Ich hab jetzt mal was von einem alten Code genommen und diesen angepasst:

Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strSQL
Set db = CurrentDb

strSQL = "select * from [Ufrm_Mangelbeschreibung] where [QFall_IDFS]=" & Me.Qnummer  
Set rs = db.OpenRecordset(strSQL)

Passt der Code soweit?
Wie kann ich jetzt den Inhalt dieser Abfrage in Excel exportieren? (in bestimmte Felder wie gewohnt)
Mitglied: 83928
83928 Dec 14, 2009 at 09:05:28 (UTC)
Goto Top
Hallo,
ich versuchs mal auf die Schnelle, da grade wenig Zeit.

Du hast Dir in Access VBA ja schon ein Recordset erstellt. Nun einfügen mit der "copyFromRecordset". Ist eine Methode vom (Excel)-Range Objekt. Kannst Du via Access über den Verweis "Microsoft Excel libary" zugänglich machen (s.o)


Dim xlAnw As Excel.Application
Dim xlBuch As Excel.Workbook
Dim xlArbBlatt As Excel.WorkSheet

Set xlAnw = CreateObject("Excel.Application")
Set xlBuch = xlAnw.Workbooks.Open("c:\dest.xls") 'Die Excel-Datei öffnen
Set xlArbBlatt = xlBuch.Worksheets(1) 'erstes Sheet

xlArbBlatt.Range("A1").CopyFromRecordset rs
Member: Valume91
Valume91 Dec 14, 2009 at 09:17:18 (UTC)
Goto Top
abaaba mein Held!!
Funktioniert einwandfrei!

xlArbBlatt.Range("A1").CopyFromRecordset rs
War das was ich noch benötigte!

Nochmals vielen Dank!

Gruss Valume