Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo ich sitze gerade an meiner Projektarbeit und habe folgendes Prob:

Ich habe in Access ein Formular geschrieben in das der User eine Nr eingeben kann.

Der VBA-Code verbindet sich nun über ODBC mit Oracle-Db, sucht den zu der Nummer passenden

Datensatz heraus und spielt sie in meiner MDB in die Tabelle1.

Nun möchte ich aber eine Hinweis ausgeben, wenn eine Nr mehrmals abgerufen wird.

Vor dem Schreiben in Tabelle1 soll also gesucht werden, ob der Datensatz nicht schon vorhanden ist.

Ich habe aber Probleme das in die SQL-Anweisung bzw VBA Code zu implementieren.

Wie kann ich also meiner SQL-Anweisung in VBA ein Ergebnis zuweisen

COUNT(*) FROM TABELLE1 WHERE EINDEUTIGENR=2222222 INTO HILFSTABELLE

Das Problem liegt hier:

IF HILFSTABELLE1.FELD1 = 0

THEN OK

ELSE

DATENSATZ VORHANDEN

ENDIF

Wie kann ich eine Lösung dafür finden?

Geschrieben

Du willst also doppelte Sätze finden? hmm..

Sortiere doch die Datensätze nach der Spalte in der die doppelten gefunden werden sollen und vergleiche immer den nächsten mit seinem Vorgänger Sind die gleich, schreibe beide in eine ander Tabelle weg. So mache ich das immer wenn es sich um Personalnummer etc. handelt (endeutige Nummer eben).

Geschrieben

Danke, aber mittlerweile habe ich eine Lösung gefunden. Mein Kollege hatte mir 2 Vorschläge gemacht:

Einmal über ADO.Connection einen Zeiger erstellen auf den man dann wie ein Array zugreifen kann. Das ist allerdings im Rahmen des Projektes zu umständlich, eignet sich eher für reine VB-EXEn.

Ich habe einen Count über die eindeutige Nr. gemacht. Wenn der Satz also nur einmal drin ist erhalte ich eine 1, sonst ist er entweder gar nicht drin (0) oder merhmals >1. Jetzt lässt sich über den VBA-Befehl

If Forms!test_temp!Expr1000 = "1" Then

MsgBox "OK", vbOKOnly

Else

MsgBox "mehrmals", vbOKOnly

End If

darauf zugreifen und reagieren. Das Formular heisst in diesem Fall test_temp und das Feld mit dem Wert Expr1000.

Das ist zwar nicht ganz elegant, aber der user bekommt davon eh nichts mit , es läuft alles im hintergrund. am besten wäre es natürlich im quelltext eine variable zu definieren z.b. DIM Ergebnis1 AS VARIANT und zu sagen

SELECT COUNT(*) FROM TABELLE INTO Ergebnis1. Ob das überhaupt geht weiss ich aber nicht, hinbekommen tu ichs nicht...

GRuss Ischte

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...