| |

VB & DatenbankenZiemlich komplexes Problem - Fortsetzung | |  | Autor: vman | Datum: 25.01.05 15:46 |
| Die Daten sollen nur importiert werden, wenn der Wert des Feldes b_import_process = True, also das Häkchen gesetzt ist, was an sich kein Problem darstellt (glaube ich).
Jetzt stellt sich mir die Frage, wie ich die Dateien ohne manuelle Pfadeingabe importieren kann. Möglicherweise indem sie in einer Stringvariablen abspeichere, aber wie weise ich sie dann dem Befehl "DoCmd.Transfer..." zu?
DoCmd.Transfer ... ist ja der Befehl, mit dem ich Dateien in Access importieren kann, zumindest kenne ich keinen anderen. Kann man eine Funktion schreiben, mit der ich die Dateien, deren Pfade in der Datenbank abgelegt sind, importieren kann und
zwar so, daß der Dateiname aus der Datenbank ausgelesen und in den Importbefehl als Variable übertragen wird, so daß der Import automatisch
erfolgt? Dann soll es so sein, daß die Daten mittels SQL ausgewertet werden, wenn sie in die Datenbank eingefügt wurden. Wurden sie nicht eingefügt, sollen
sie auch nicht ausgewertet werden. Sehe ich das richtig, daß ich dann unterschiedliche SQL-Statements für jeden Fall schreiben muß?
Ansonsten würden die doch keine richtigen Ergebnisse liefern und daß sie sich dynamisch anpassen lassen, ist - soweit ich weiß - nicht möglich.
Wenn z.B. x mit y und z verglichen werden soll, dann aber z nicht verfügbar ist, entsteht ja ein Fehler. Kann man das programmtechnisch umgehen? Das Problem
ist nämlich auch, daß x auch mal c heißen könnte und umbenannt werden muß es kann sich auch der Datentyp ändern, also daß z. B. vorher eine Excel-Datei importiert werden mußte und dann eine Access-Datenbank und es sollen keine Pfade
im Code manuell abgeändert werden. Daß das möglich ist, denke ich schon (bin mir aber nicht sicher), aber ist das auch in VBA möglich? Möglicherweise
überschätzt mein Betreuer da die Möglichkeiten, aber vielleicht unterschätze ich sie auch.
Dann muß ich noch einen String um ein paar Zeichen bereinigen. Wie ich das in Excel realisieren kann, weiß ich durch einen Tip aus dem Forum, wofür ich mich nochmal bedanken möchte, aber ich weiß nicht, wie ich das in Access machen soll bzw. wie ich die Zellen ansteuern soll.
Ich poste auch mal den Code:
Dim dbsNorthwind As Database
Dim rstTabelle 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("Stringbereinigung",
dbOpenDynaset)
Set dbsNorthwind = CurrentDb
Dim variable As String
Dim i As Integer
i = 1
variable = Cells(i, 1)
Do Until variable = ""
variable = Left(variable, InStr(1, variable, "\", vbBinaryCompare))
variable = Replace(variable, "-", "", , , vbBinaryCompare)
variable = Replace(variable, "\", "", , , vbBinaryCompare)
variable = Replace(variable, " ", "", , , vbBinaryCompare)
Cells(i, 1) = variable
i = i + 1
variable = Cells(i, 1)
Loop
End Sub
Das Problem ist nämlich, daß Access mit der Variable Cells, wie sie in Excel heißt, logischerweise nichts anfangen kann, ich weiß aber nicht, wie ich die Variable in Access nennen muß, daß alle Felder in z. B. einer Spalte angesprochen werden.
Wenn jemand eine Idee hat, die mir weiterhelfen könnte, freue ich mich über jede Antwort.
Besten Dank im voraus und viele Grüße,
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 |
  |
|
Neu! sevPopUp 2.0 
Dynamische Kontextmenüs!
Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... Weitere InfosTipp des Monats TOP Entwickler-Paket 
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1866.50 EUR...
Jetzt nur 979,00 EURWeitere Infos
|