online 1
gast (50)

/ Forum / Datenbanken

DatenbankenDatenbanken

Fragevon dirkp vom 06.09.2019, 12:53 Options

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

Ähnliche Themen

Textfelder beim Öffnen automatisch leeren
Micxel  05.03.2007 - 113 Hits - 2 Antworten

Probleme mit Druckbutton in einem HTML-Formular
joph  19.04.2007 - 133 Hits - 1 Antwort

Excel Daten in ein Word Formular
Smart79  05.09.2007 - 172 Hits - 1 Antwort

uhrzeit per schaltfläche
Alexx1  18.12.2007 - 90 Hits - 11 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026