Schaltfläche die Formular automatisch bearbeitet
Hallo,
also folgendes Problem:
Ich habe vor eine Schaltfläche zu erzeugen, welche
1.
automatisch auf eine excel tabelle zugreift und dann die tabelle im access mit den daten auktualisiert, also am ende anfügt
2.
auf einem vorhandenen Formular eine Schaltfläche erstellt (ein Fenster öffnet sich u fragt wie die Schaltfläche heißen soll) kommt, die dann wiederum ein modales Formular anzeigt wo die neu eingespielten daten in form eines listenfeldes angezeigt werden (die neuen daten müssten vorher natürlich über eine abfrage aus der tabelle erzeugt werden)
hmm also ich hab bis jetzt noch keine ahnung ob das überhaupt geht und ob man das über einen vba code hinbekommt...
würde mich über ein paar gute ratschläge sehr freuen!!
danke und grüße dirk
Antwort schreiben
Antwort 1 von lleopard vom 06.09.2019, 13:53 Options
Hallo Dirk,
hier Teil1 deines Problems bzw deiner Aufgabe:
Neues Modul, rein damit und speichern:
Achtung: Objektkatalog öffnen, Verweise => Microsoft Excel was auch immer aktivieren, sonst gehts net.
Dim oExcel As Excel.Application, Tmp, oSheet As Excel.Worksheet, Er As Long
Dim dbs As DATABASE
Dim s, t, u, r As Date
Dim PjFound As String
Dim PjSearch As Long
Dim i As Integer
Dim v As String
Dim cc As Long
Const path = "c:\import" '<= Mußte natürlich anpassen!!
Function TabelleAuslesen()
Dim dbs As DAO.DATABASE
Dim rs As DAO.Recordset
Set dbs = CurrentDb
Set rs = dbs.OpenRecordset("DeineTabelle")
'On Error Resume Next
DoCmd.SetWarnings False
v = Dir(path & "*.xls")
i = i + 1
Do While v <> ""
Err.Clear
Set oExcel = CreateObject("Excel.Application")
On Error Resume Next
With oExcel
.Workbooks.Open path & v
.Visible = False 'True
cc = .Sheets.Count
s = .Sheets.Item(i).Name
'Ab hier mußt du dann wissen wie deine Tabelle aussieht
'also deine Schleife durch die Tabelle funzen soll... zB so:
do while .cells(i,1) <> ""
rs.AddNew
rs!Tabellen-Feldname = .cells(i,1)
rs.Update
loop
.Quit
End With
v = Dir
Loop
rs.Close
Set rs = Nothing
Set dbs = Nothing
DoCmd.SetWarnings True
End Function
Teil 2 is im Prinzip auch ganz einfach. Aber arbeitsintensiv mit vba. Ich würde übrigens aus Gründen der optischen Hygiene keine Befehlsschaltflächen benutzen, sondern Textfelder mit einem Ereignis onClick erzeugen. Das ist auch schöner um Effekte zu erzeugen...
Lg Leo
Antwort 2 von dirkp vom 06.09.2019, 18:03 Options
Danke dir!
werde das morgen mal ausprobieren,weil ich schon seit heut früh an der db rumarbeitet, habe ich jetzt irgendwie keinen bock mehr....morgen versuche ich es!
grüße