Hey,
ich bin sehr unerfahren was VBA angeht und brauche Eure Hilfe.
Ich habe einen automatisierten Import in der Datenbank, nach dem Import soll die spalte "Projekt-ID" auf integer oder string überprüft werden.
Aktuell habe ich folgendes Ergebnis
---------------------------------------
Sub RecordsetOeffnen()
Dim db As Database
Dim rcsID As Recordset
Set db = CurrentDb
Set rcsID = db.OpenRecordset("T_Korrekturliste", dbOpenDynaset)
Do Until rcsID.EOF
Debug.Print rcsID.Fields("Projekt-ID").Value
rcsID.MoveNext
Loop
End Sub
---------------------------------
Was ich noch brauch: Projekt-ID darf nur eine Zahl (integer) sein
--> Wenn in der Spalte Text (string), dann füge die ganze zeile in "neue Tabelle" an
Könnt Ihr mir helfen oder braucht ihr mehr infos?
VG
MK
Hi,
eine Prüfung, ob etwas numerisch ist, kannst Du machen in der Art:
if isnumeric(rcsID![Projekt-ID]) then ...
Harald
PS Vermeide "-" bei der Benamsung (deshalb der Einsatz von [..]
Danke Harald
vielen Dank.
Jetzt stehe ich nur vor dem nächsten Problem, wie ich sage dann "wenn zahl, dann ganze zeile in neue tabelle anfügen"?
Hi,
wenn Du für deinen Datenimport eine Abfrage verwendest, könntest Du dort abfragen, ob der Inhalt deines Feldes NUMERISCH oder STRING ist und die so selektierten Daten Deiner jeweiligen Tabelle zuweisen.
Wobei ich ein "gewisses Unwohlsein" verspüre, wenn Daten auf verschiedene Tabellen verteilt werden müssen.
Harald
ZitatIch habe einen automatisierten Import in der Datenbank, nach dem Import soll die spalte "Projekt-ID" auf integer oder string überprüft werden.
Das ist gelinde gesagt großer Unsinn.
In dem Moment, wo die Abfrage zur Erzeugung des Recordsets ausgeführt wird, hat jedes Feld einen Datentyp:
Debug.Print rcsID.Fields("[Projekt-ID]").TypeDamit ensprechen auch die Werte im Feld genau diesem Datentyp. Bei Datenbanktabellen gibt es eben kein Wirrwarr und Durcheinander wie es in Exceltabellen möglich ist.
Auch: Wenn man ORDENTLICH importiert, importiert man Daten in ein bestehendes Datenmodell. Da sind Tabellen, Felder und deren Datentypen bereits planmäßig festgelegt.
Da gibt es dann nicht die Frage, ob Texte in ein Integerfeld importiert werden, weil da schlicht und notwendigerweise Fehler auftreten. Daher müsste man im Rahmen des Imports Texte in Integer umwandeln, wenn das geht und auch sinnvoll ist. Ansonsten müsste man den Import abwehren. Dabei muss man sich zusätzlich die Frage stellen, ob man nur fehlerhafte Datensätze abwehrt und einen unvollständigen Import zulässt oder ob mn nur ganze Sachen macht.
Wenn sich jedoch Datenbankstrukturen erst aus ausgeführten zufälligen Importen ergeben, sollte man besser das Fach wechseln und vielleicht Rosen züchten.
Leider Hilft mir das nicht weiter...
Hat keiner ein Beispiel für mich, wie ich nach dem import die Tabelle auf string und integer prüfen kann?
Prüfe "Projekt-ID" ob integer oder string
wenn string, dann kopiere Zeile in neue tabelle und lösche die zeile.
Beispiel wäre super
Hallo,
es hilft Dir schon insofern weiter, als dass Dir geraten wird, Dein Importkonzept wegzuwerfen und ein neues auszuarbeiten.
Vielleicht könntes Du anhand von Beispielen die gesamte Aufgabe beschreiben, die die Db lösen soll...
ZitatLeider Hilft mir das nicht weiter...
Du willst "Deinen Stiefel" durchziehen statt zu verstehen, was wirklich in einer DB passiert?
Ein Feld (eine Spalte) einer Datenbanktabelle hat EINEN Datentyp für ALLE Inhalte. Also kannst Du entweder alles verwenden oder alles wegwerfen.
Die Prüfung auf den Datentyp hast Du wahrgenommen?