Zum Inhalt springen

VBA-SQL Abfrage mit Ergebnisverarbeitung


EHEMALIGER_IB

Empfohlene Beiträge

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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).

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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...