Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: M.K.84 am Mai 30, 2016, 15:03:48

Titel: Überprüfung String oder integer in Spalte
Beitrag von: M.K.84 am Mai 30, 2016, 15:03:48
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
Titel: Re: Überprüfung String oder integer in Spalte
Beitrag von: bahasu am Mai 30, 2016, 15:16:08
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 [..]
Titel: Re: Überprüfung String oder integer in Spalte
Beitrag von: M.K.84 am Mai 30, 2016, 15:29:38
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"?

Titel: Re: Überprüfung String oder integer in Spalte
Beitrag von: bahasu am Mai 30, 2016, 15:37:06
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
Titel: Re: Überprüfung String oder integer in Spalte
Beitrag von: ebs17 am Mai 30, 2016, 19:15:20
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]").Type
Damit 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.
Titel: Re: Überprüfung String oder integer in Spalte
Beitrag von: M.K.84 am Mai 30, 2016, 19:21:59
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
Titel: Re: Überprüfung String oder integer in Spalte
Beitrag von: DF6GL am Mai 30, 2016, 19:57:59
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...
Titel: Re: Überprüfung String oder integer in Spalte
Beitrag von: ebs17 am Mai 30, 2016, 22:17:31
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?