Juli 14, 2020, 00:06:40

Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!


Datentypenkonflikt im Kriterienausdruck

Begonnen von ArtagonDeadeye, Oktober 29, 2018, 12:11:11

⏪ vorheriges - nächstes ⏩

ArtagonDeadeye

Oktober 29, 2018, 12:11:11 Letzte Bearbeitung: Oktober 29, 2018, 12:37:11 von ArtagonDeadeye
Hallo

Ich habe mir schon einiges an VBA Programmierung selbst angeeignet. Bin da kein völliger Neuling aber auch weit vom Profi entfernt. Aktuell stehe ich jedoch vor einer Problematik, welche sich meinem Verständnis enthebt und bitte um Hilfe.

Situation:
Es soll eine Reklamationsdatenbank aufgebaut werden. Meine Wenigkeit hatte von Access bisher keine Ahnung und durch Buch kaufen/lernen die bisherigen spärlichen Kenntnisse angeeignet. Die Stammdatenverwaltung funktioniert zufriedenstellend. Der nächste Arbeitsschritt ist die Fallbearbeitung. Zu diesem Zweck habe im Formular Unt_B_Kopf einige Kombinationsfelder eingefügt, welche miteinander verknüpft sein sollen.

Lösungsansatz:
Kombinationsfeld Kunde "schiebt" nach Änderung seine DatensatzID in eine Variable, welche als Long deklariert ist (aus Tabelle Kunde).
Über Select soll nun das Kombinationsfeld SachbearbeiterExt nur mit jenen Datensätzen befüllt werden, welche der KundenID entsprechen (aus Tabelle SachbearbeiterExt).

Problem:
Die Auswahl des Kunden im entsprechenden Kombinationsfeld funktioniert problemlos. Ebenso wird die KundenID in die Variable übernommen. Wenn ich jedoch im Kombinationsfeld "Sachbearbeiter Kunde" auf das DropDown Feld klicke kommt die Fehlermeldung: "Datentypenkonflikt in Kriterienausdruck"
Ich habe peinlich darauf geachtet, dass alle IDs sowie die Variable vom Typ "Long Integer" sind.

Ist vielleicht jemand so freundlich und kann meinem begrenzten Wissen ein wenig auf die Sprünge helfen?
Artagon

DF6GL

Hallo,


1) benutze das Afterupdate-Ereignis des Kombis

2) wenn der Datentyp Long ist, ist ein Vergleich mit Text (einschließende Hochkommata) nicht zielführend

3) die Zwischenvariablen sind überflüssig (trotzdem nicht verkehrt)


Private Sub KomboUntKopfKunde_Afterupdate()
  Me!KomboUntKopfSachExt.RowSource = "SELECT SachExtID, KundenID, Nachname, Vorname FROM  SachbearbeiterExt WHERE KundenID = " & Me!KomboUntKopfKunde
End Sub


Lachtaube

Du darfst keine Krähenfüße (') für den Wert der zusammengeklebten Bedingung verwenden, wenn es sich dabei um eine lange Ganzzahl handelt. Außerdem ist das Ereignis Nach Aktualisierung des Kombifelds gegenüber dem Bei Änderung-Ereignis zu bevorzugen.
Grüße von der (⌒▽⌒)

ArtagonDeadeye

Das funktioniert super!
Vielen Dank DF6GL und Lachtaube  ;D ;D

Beaker s.a.

@ ArtagonDeadeye
Kleiner Fehler noch in der Tabelle "Kunden"; - die PLZ kann keine Zahl
sein da es
1. in deutschen Adressen führende Nullen gibt,
2. in ausländischen Adressen Buchstaben auftauchen können.
Ergo, das Feld muss "Text" sein.
gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.

ArtagonDeadeye

Ups, vielen Dank für die Info.
Gleich geändert  :)