Hallo
Seit Wochen bastle ich an einem Problem rum und komm nicht weiter...
Ich Filtere in einem Formular eine Tabelle und möchte per Hyperlink (oder Button - egal) ein zweites Formular öffnen, welches mir speziell zu den Filterkriterien die Möglichkeit gibt, ergänzende Daten in eine zweite Tabelle einzutragen.
Ich bekomme jedoch das Filterkriterium nicht übertragen in den Filter für das zweite Formular....
Hier meine derzeitige (halt leider nicht funktionierende) Lösung
Dim lngID As String
lngID = Me.Anzeigename
DoCmd.OpenForm "UK", , , "Anzeigename= lngID"
Wo liegt nun das Problem? Ich bin leider Neuling hier und hab mir das so alles aus dem Forum zusammengestückelt....
Hi,
probier mal (unter der Voraussetzung, dass " lngID" als Zahl deklariert ist):
if nz(lngID,0) > 0 then DoCmd.OpenForm "UK", , , "Anzeigename=" & lngID
Harald
Es wird zwar das Kriterium richtig übergeben... Er gibt mir dennoch einen Fehler an... Und öffnet das neue Formular nicht.... :(
Hast Du ne Idee?
Danke überhaupt, das Du mich unterstützt mit meinem Problem.
hI;
Zitat von: Outliener am Mai 29, 2013, 22:05:23
Er gibt mir dennoch einen Fehler an...
Wie lautet der Fehler: Nummer und Beschreibung?
An welcher Stelle tritt er auf?
Moin
Also:
Ich habe in einer (Kontakte) Tabelle - diverse Namen und Adressen die einer Kunden_ID zugeordnet sind.
Eine Weitere Tabelle (Kontrollen) erfasst diverse Laborwerte die jeder Kunden_ID zugeordnet sind.
Ich möchte nun aus dem ersten Formular per Button zum zweiten Formular kommen. (jedoch die Filterung übernehmen).
Ich hab nun folgende Syntax:
Dim lngID As String
lngID = Me.Kunden_ID
If Nz(lngID, 0) > 0 Then DoCmd.OpenForm "UK", , , "Kunden_ID=" & lngID
Ich bekomme jedoch den
Laufzeitfehler 3464
Datentypenkonflikt in Kriterienausdruck
Wenn ich debugge erhalte ich folgendes Problem gezeigt:
Dim lngID As String
lngID = Me.Kunden_ID
If Nz(lngID, 0) > 0 Then DoCmd.OpenForm "UK", , , "Kunden_ID=" & lngID
Wobei ich angezeigt bekomme das Kunden_ID (wenn ich mit der Maus drüber gehen) die richtige Kunden_ID geladen hat.
Ich hoffe ich hab das jetzt gut erklärt alles.
Hi,
da string
Dim lngID As String
If Nz(lngID, "") > "" Then DoCmd.OpenForm "UK", , , "Kunden_ID='" & lngID & "'"
Harald
PS
Wobei es ungewöhnlich ist, eine ID als string zu deklarieren. Zahl (long) ist das Übliche.
Hallo,
da scheinen ein paar Datentypen zusammengewürfelt zu sein..
Zudem ist die NZ()_Funktion unpassend verwendet.
Unter der Annahme, dass "Kunden_ID" den Datentyp Long Integer besitzt, dann einfach so:
Sub btnButton_Click()
DoCmd.OpenForm "UK", , , "Kunden_ID=" & Me!Kunden_ID
'oder auch , falls Kunden_ID "leer" sein könnte (was bei richtigem Aufbau hier nicht zu erwarten ist)
'DoCmd.OpenForm "UK", , , "Kunden_ID=" & nz(Me!Kunden_ID,0)
End Sub
----------------------
Dim lngID As String ' Integer-Variable als String deklariert
lngID = Me.Kunden_ID ' damit Long-Wert einer Textvariablen zugewiesen.
If Nz(lngID, 0) > 0 Then ' die NZ()-Funktion ist nur bei Datentyp Variant sinvoll/geeignet.
DoCmd.OpenForm "UK", , , "Kunden_ID=" & lngID 'Prinzipiell richtig, wenn "lngID" vom Datentyp Long Integer wäre
End If
Sollte es sich (wider Erwarten) bei Kunden_ID um den Datentyp "Text" (String) handeln, dann muss der ID-Wert in Hochkommata eingeschlossen werden:
DoCmd.OpenForm "UK", , , "Kunden_ID='" & Me!Kunden_ID,"") & "'"