Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

VBA-SQL Abfrage mit Ergebnisverarbeitung

Empfohlene Antworten

Veröffentlicht

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?

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

  • Autor

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.