VisualBasic Problem Formular öffnen in VBA

  • Ersteller Ersteller orschiro
  • Erstellt am Erstellt am
O

orschiro

Gast
Hallo Leute,

ich hätte da eine kleine Frage zu VBA, genauer gesagt zur DoCmd.Open Form Methode. Laut dem folgenden Hilfe-Beispiel ist es möglich, im zu öffnenden Formular nach einem Ausdruck zu suchen:

Beispiel


Dieses Beispiel öffnet das Formular Personal in der Formularansicht und zeigt nur die Datensätze an, in denen im Feld Nachname der Name "Buchwald" steht. Die angezeigten Datensätze können bearbeitet, und es können neue Datensätze hinzugefügt werden.

Visual Basic für Applikationen
DoCmd.OpenForm "Employees", , ,"LastName = 'King'"

Jetzt dachte ich mir, ich könnte das Formular auch in Abhängigkeit davon öffnen, welcher Wert im aktuellen Formular in einem Textfeld steht. Das dachte ich mir folgendermaßen:

Dim i As Integer

i = id ' id ist hier das Textfeld im aktuellen Formular und ist immer eine Zahl
DoCmd.OpenForm "Formular2", , ,"ID = i" 'Hier wird nun das Textfeld ID in Formular 2 auf den Wert i abgesucht

Leider funktioniert das so nicht, sprich er hat Probleme mit der Variablen und öffnet mir stattdessen ein Parametereingabefeld.

Was mache ich nur falsch?

Danke :)
 
Hallo Tom,

das hat leider nichts geholfen, zumal CStr ja auch nur den Wert in einen String umwandelt. Nur was soll mir das bringen?
 
Hallo,

nunja, ich war der Meinung das Du an der Stelle einen String übergeben mußt. Aber gut.

Ich nehme mal an, dass er ein Parametereingabefeld öffnet und nach einer ID fragt?

Gruß
Tom
 
Ich nehme mal an, dass er ein Parametereingabefeld öffnet und nach einer ID fragt?

Genau das tut er und öffnet mir dann auch entsprechend auch das Richtige, nur eleganter wäre es natürlich ohne Parameterübergabe.

Es ist auch so, dass der Variable i ja auch der richtige Wert übergeben wird, er offensichtlich nur nichts damit anfangen kann.

Sprich schreibe ich ID = 8 kommt er damit klar, schreibe ich hingegen ID = i kommt die Parameteraufforderung.

EDIT:

Kann es sein, dass diese Methode nicht mit Variablen klar kommt?
 
Zuletzt bearbeitet:
Nochmal hallo,

also ich hab nochmal kurz gegoogled.

Versuch mal folgendes:

Dim strParam As String

strParam = "ID = " + CStr(i)
DoCmd.OpenForm "Formular2", , , strParam

Vielleicht funktioniert es ja.

Gruß
Tom
 
Das Beispiel von Tom müßte eigentlich funktionieren.
Wenn Du einfach "ID=i" schreibst, dann wird auch nur der String "ID=i" übergeben.
Der Wert der Variablen i wird dann nicht eingefügt.

Muß
Code:
i = id
nicht eigentlich
Code:
i = id.text oder i = id.value
sein?
 
Juhu, mit der Kombination aus euren Vorschlägen filtert er nun emdlich einwandfrei.

Ich bedanke mich nochmals bei euch, für eure Hilfe. :)
 
Zurück
Oben