| |

VB & DatenbankenDatenbank ändern ausführen durch Formularstart | |  | Autor: vman | Datum: 15.02.05 15:17 |
| Hi zusammen,
bei einem Projekt mit einer Access-Datenbank, welche mittels VBA bearbeitet wird, muß ich eine Datenbankoperation durchführen, wenn das Programm bzw. das Formular geöffnet wird und zwar ohne das Benutzer es merkt bzw. etwas tun muß.
Ich muß den Inhalt eines Feldes für alle Datensätze abändern; wie ich das per Klick-ereignis/CmdButton realisieren kann, weiß ich.
Gibt es nicht ein Ereignis Initialize oder so ähnlich; ich meine, daß es so etwas gibt, aber wenn ich es versuche, klappt es nicht.
Hier der Code:
Private Sub Formular_Click()
Dim dbsNorthwind As Database
Dim rstTabelle As Recordset
Dim rstHistorie As Recordset
Set dbsNorthwind = DBEngine.OpenDatabase(CurrentDb.Name) 'Macht Pfadeingabe
' unnötig bzw. Änderung derselben bei Kopieren auf ein anderes Laufwerk
Set rstTabelle = dbsNorthwind.OpenRecordset("Datenquellen", dbOpenDynaset)
Dim a As String
Dim f As String
Dim h As String
Dim Pfad As String
Dim s_data_source_index As String
Dim s_data_source_type As String
Dim t_import_date As Date
Dim t_import_time As Date
Dim s_filename As String
Dim s_data_path As String
Dim b_import_process As Boolean
Dim s_DataFileName As String
Dim s_DataFolderSelect As String
Dim s_DataFolderName As String
rstTabelle.MoveFirst
Do Until rstTabelle.EOF = True
s_data_source_index = rstTabelle("s_data_source_index")
s_data_path = rstTabelle("s_data_path")
s_DataFolderSelect = s_data_path & "\*.*"
s_DataFileName = Dir(s_DataFolderSelect)
With rstTabelle
.Edit
!s_filename = s_DataFileName
.Update
.MoveNext
End With
Loop
End Sub So wird die Änderung ausgeführt, wenn ich das Formular anklicke; wenn ich es versuche - Private Sub Formular_Initialize() -, tut sich gar nichts.
Habt ihr vielleicht einen Tip für mich?
Wenn ich schon dabei bin, poste ich noch weitere Punkte:
wenn ich eine Datei im *.dat-Format einlesen möchte, gibt es ja keine DoCmd.Transfer...-Anweisung wie bei Excel-Sheets usw., um sie zu importieren und es handelt sich dabei im Prinzip um eine Text-Datei, die ich mit Notepad öffnen kann, wenn die Liste Öffnen Mit... erscheint, aber ansonsten nicht.
Meine Frage ist nun, ob ich diese Datei in ein Datenbankformat überführen kann, wenn ich ein Leerzeichen zwischen den Werten als Trennzeichen betrachte und überflüssige Leerzeichen entferne und die Daten quasi blockweise in ein Array übernehme und jeweils einen Array einer Spalte zuweise? Ist ein bißchen verzwickt und ich weiß nicht, ob das so ohne weiteres funktionieren wird; wahrscheinlich ist es besser, die Datei in Excel zu übertragen und zu formatieren und dann in Access zu übernehmen :confused.
Dann habe ich noch etwas Probleme mit einer ProgressBar; ich möchte eine Tabelle abfragen mit einer unbestimmten Zahl an Datensätzen; wie ich die Anzahl der Datensätze mittels RecordCount übermittle, ist kein Problem, aber wie kann ich mir das zunutze machen, um den Fortschrittsbalken anzeigen zu lassen oder brauche ich das dazu gar nicht?
Ist viel auf einmal, aber ich bin für jeden Tip sehr dankbar.
Besten Dank im voraus und viele Grüße,
vman aka Alex. |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
sevISDN 1.0 
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats sevZIP40 Pro DLL 
Zippen und Unzippen wie die Profis!
Mit nur wenigen Zeilen Code statten Sie Ihre Anwendungen ab sofort mit schnellen Zip- und Unzip-Funktionen aus. Hierbei lassen sich entweder einzelnen Dateien oder auch gesamte Ordner zippen bzw. entpacken. Weitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|