Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Variablenübergabe vom Formular an Abfrage funktioniert nicht
zurück: Grunsätzliches zu Tabellen. Normalisierung / atomare Werte weiter: Pflichtfeld Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Misterlion
Word+Excel, Access-Einsteiger


Verfasst am:
30. Mai 2013, 11:23
Rufname:

Variablenübergabe vom Formular an Abfrage funktioniert nicht - Variablenübergabe vom Formular an Abfrage funktioniert nicht

Nach oben
       Version: Office 2010

Hallo,
benötige mal eine kleine Hilfe von Euch.
Ich öffne ein Formular1 (frm04adressen….) mit einer Abfrage1 ( Adressen1, Tabelle2, Tabelle3). dort gibt es das Feld [adrPersNr] der Inhalt ein Text „9999“.
Mit einer Schaltfläche möchte ich nun aus der Abfrage1 (Adressen1 usw.) die Personal-Nr [adrPersNr]=“9999“ übergeben an das Öffnen von Formular2 mit der Abfrage2.
Dort heißte das Feld [araPersNr]
In der Abfrage2 (Adressen2=[araPersNr], Tabelle4, Tabelle5) habe ich die [araPersNr] mit einer Parametereingabe versehen.
Die vararaPersNr ( As String) soll eine Variable sein.
Der Code den ihr hier seht, ist das 2. Formular was ich öffnen möchte, mit der Variablen die ich der Abfrage2 [araPersNr] übergeben möchte.
Code:
[Forms]![frm09AdressenRechAnschriftBearbeiten]![vararaPersNr]
Starte ich nur diese Abfrage2 von Hand,
wird nach der Parametereingabe gefragt
und mit meiner (Text –Eingabe) „9999“ wird die richtige Personal-Nr gefunden und der Datensatz angezeigt.
Super so soll es sein.

Starte ich jetzt über die Schaltfläche im Formular1, scheint er die Variable vararaPersNr nicht zu kennen
Und Windows will wieder eine Parameterabfrage machen. Gebe ich die Nummer „9999“ ein, wird aber das Formular leer geöffnet.
Irgendwie wird der Wert nicht richtig übergeben.
So sieht der Code der Schaltfläche aus.
Code:
Private Sub Rechn_Anschrift_bearbeiten_Click()
    Dim VararaPersNr As String
   
    If DCount("*", "tblHeimadrRechAnschrift" _
            , "araPersNr = '" & Me!adrPersNr & "' ") = 0 Then
        MsgBox "Diese Personal-Nr gibt es nicht in der Rechnungsanschrift!"
        Exit Sub
    End If
    If DCount("*", "tblHeimadrRechAnschrift" _
            , "araPersNr = '" & Me!adrPersNr & "' ") > 0 Then
        DoCmd.OpenForm "frm09AdressenRechAnschriftBearbeiten", acNormal, "" _
                     , "vararaPersNr = " & Me.adrPersNr, acFormEdit _
                     , acDialog, "oeffnen"
    End If
End Sub
Ich finde meinen Fehler leider nicht.

Gruß Frank

_________________
Alter Basic+Clipper Programmierer, Versuche mich in Access 2010- Habe das Office 2010
Marmeladenglas
komme zurecht


Verfasst am:
30. Mai 2013, 12:47
Rufname:


AW: Variablenübergabe vom Formular an Abfrage funktioniert n - AW: Variablenübergabe vom Formular an Abfrage funktioniert n

Nach oben
       Version: Office 2010

HI,
was erwartest du ?

vararaPersNr ist doch lediglich eine Variable aber kein Feld deiner Abfrage bzw. der Quelle des Formulars. Wenn vararaPersNr als Variable verwendet werden soll, müsste sie 1.) mit einem Wert belegt werden (kann ich nicht im Code erkennen) und zweitens müsste dort der Name eines Feldes stehen, in dem du den Filter setzen willst. Desweiteren müsste die Übergabe des Variablenwertes dann auch außerhalb des Kriteriumsstrings stehen. Den Wert 9999 (nach dem gesucht werden soll),holst du doch bereits aus dem Steuerelement des Formulars.

Hinzu kommt noch, dass man Strings üblicherweise in Hochkommas setzt.
Sofern denn das Tabellen-feld (das ist entscheidend) als String deklariert ist.

Ferner ist es wohl überflüssig 2 DCounts abzusetzen.
Wenn du weißt, dass Dcount nicht 0 ist, dann bleibt ja nur noch eins übrig, also reicht hier ein ELSE.
Das Exit Sub wäre hier dann auch entbehrlich, da nach dem End.. IF sowieso nur noch End Sub kommt.
Insofern wird der TRUE-Teil nur benötigt, um die Fehlermeldung auszugeben.
Code:
    If DCount("...") = 0 Then
        Exit Sub
      Else
        DoCmd.OpenForm "..."
    End If
Misterlion
Word+Excel, Access-Einsteiger


Verfasst am:
30. Mai 2013, 15:24
Rufname:

AW: Variablenübergabe vom Formular an Abfrage funktioniert n - AW: Variablenübergabe vom Formular an Abfrage funktioniert n

Nach oben
       Version: Office 2010

Hi,
ich bin jetzt leider völlig verwirrt.
Leider konnte ich mit der Antwort nichts anfangen.
Das if else endif kannte ich schon. Ich habe nur gerade etwas probiert und deswegen die 2x If Endif.
Mein Wunsch ist es.
Meine Abfrage wie im Bild zu sehen ist, mit einem Wert zu füllen,
damit die Abfrage gefiltert wird und das 2. Formular sich mit der Personal-Nr öffnet.
Wie bekomme ich aus dem Formular2 aus dem Feld [adrPersNr] den Wert in die,
wie immer das Wort (Personalnummer) sich nennt (Variable o.Sonstiges) mit dem Wert aus dem Feld [adrPersNr] übergeben.

Die Aufgabenstellung sollte doch jetzt klar sein.
Mein jetziger Code, der an der Stelle "Personalnummer = " & Me.adrPersNr natürlich falsch ist.
Code:
Private Sub Rechn_Anschrift_bearbeiten_Click()
    If DCount("*", "tblHeimadrRechAnschrift" _
            , "araPersNr = '" & Me!adrPersNr & "' ") = 0 Then
       MsgBox "Diese Personal-Nr gibt es nicht in der Rechnungsanschrift!"
      Else
        DoCmd.OpenForm "frm09AdressenRechAnschriftBearbeiten", acNormal, "" _
                     , "Personalnummer = " & Me.adrPersNr, acFormEdit _
                     , acDialog, "oeffnen"
    End If
End Sub
Ihr könnt auch eine andere Lösung vorschlagen. Aber nicht nur erzählen, sondern zeigen bitte. Ich verstehe mehr wenn ich Beispiele sehe. Danke

Gruß
Frank

_________________
Alter Basic+Clipper Programmierer, Versuche mich in Access 2010- Habe das Office 2010



capture_05302013_145618.jpg
 Beschreibung:
Die Parameterabfrage "Personalnummer" möchte ich aus einem Formular einen Wert übergeben. In diesem Fall "9999"
 Dateigröße:  34.73 KB
 Angeschaut:  176 mal

capture_05302013_145618.jpg


Marmeladenglas
komme zurecht


Verfasst am:
30. Mai 2013, 15:49
Rufname:

AW: Variablenübergabe vom Formular an Abfrage funktioniert n - AW: Variablenübergabe vom Formular an Abfrage funktioniert n

Nach oben
       Version: Office 2010

Hi,
warum lädst du die DB nicht einfach hoch, dann muss man sich nicht durch die diversen verwirrenden Erklärungsversuche kämpfen.
Sofern ich es richtig verstehe:
Code:
    DoCmd.OpenForm "frm09AdressenRechAnschriftBearbeiten", acNormal, "" _
                     , "Personalnummer = " & Me.adrPersNr, acFormEdit _
                     , acDialog, "oeffnen"
Wozu ist hier überhaupt das Kriterium erforderlich ?
Die Abfrage an sich holt sich doch schon die PersNr aus dem Formular.
Was machst eigentlich mit dem OpenArg "oeffnen" ?

Die Abfrage ist doch Datenquelle des Formulars was sich über den Klick öffnet, oder nicht ?
Der angegebene Parameter bzw. Formularreferenz ist doch das Formular auf dem der Button sitzt ?
Oder verstehe ich das falsch ...

Zumindest kommst du so von "außen" nicht dran, um der Abfrage mitzuteilen, dass Forms!Deinform!DeinePersonalnummer 9999 annehmen soll.

Das ginge z.b. über qryDef mit qrydef.Parameters(...)
Zitat:
Variable vararaPersNr
Diese Variable definierst du lediglich im VBA-Code.
Wie sollte denn die Abfrage was mit dieser Variablen anfangen können ???
SQL und VBA sind zwei paar Schuhe. Es gibt zwar Schnittstellen, aber nicht so.
Misterlion
Word+Excel, Access-Einsteiger


Verfasst am:
31. Mai 2013, 22:00
Rufname:


AW: Variablenübergabe vom Formular an Abfrage funktioniert n - AW: Variablenübergabe vom Formular an Abfrage funktioniert n

Nach oben
       Version: Office 2010

Hallo,
da man auch gelöste Probleme beschreiben soll, mache ich das hiermit.
Ich habe mein Problem jetzt selber lösen können.
Durch stöbern seit Stunden, Videos schauen und herum probieren, habe ich es jetzt hinbekommen.
1 gravierenden Fehler hatte ich in meinen ganzen Formularen.
Gerade eben habe ich im Forum einen Bericht gelesen.

Unter Eigenschaften von Formularen,
darf der Schalter DATEN EINGEBEN nur bei einer neuen Datensatzeingabe auf JA stehen.
Ich hatte gedacht, dass ich ja beim Bearbeiten, auch Daten eingebe, also stand der Schalter auf JA.
Das war falsch bei mir.
Deswegen hatte ich beim Anzeigen ein leeres Formular ohne Felder.
Das brachte mich völlig aus der Bahn.
Eigentlich war ich schon fast am Ziel.
So suchte ich nach anderen Möglichkeiten, Variablen usw.,
weil ich dachte, es kommt der Wert nicht an und das war Sch...

So war es jetzt richtig für meine Datenbank.
Mein Adressen Formular: frm04AdressenBearbeiten mit dem Feld [adrPersNr]
übergebe ich an meine Abfrage2 an das Feld [araPersNr] meine Personal-Nr:
Code:
[Forms]![frm04AdressenBearbeiten]![adrPersNr]
Ich bin also in meinem Adressen Formular und möchte mit Klick auf eine Schaltfläche eine Rechnungsanschrift bearbeiten.
Dafür nutze ich die Personalnummer.
Gibt es sie in der Tabelle Rechnungsanschriften,
dann öffne ich das Formular [frm09AdressenRechAnschriftBearbeiten],
wenn die Personalnummer nicht vorhanden ist,
kommt gleich eine Meldung, dass es sie nicht gibt.
Code:
Private Sub Rechn_Anschrift_bearbeiten_Click()
    If DCount("*", "tblHeimadrRechAnschrift", "araPersNr = '" & Me!adrPersNr & "' ") = 0 Then
        MsgBox "Diese Personal-Nr gibt es nicht in der Rechnungsanschrift!"
      Else
        DoCmd.OpenForm "frm09AdressenRechAnschriftBearbeiten", acNormal
    End If
End Sub
So einfach, aber durch meine noch zu geringen Kenntnisse über Access2010,
dann ein großes Problem.

Gruß
Frank

PS. Die Funktion DoCmd.OpenForm ist mir noch nicht ganz geläufig,
vielleicht kann man das acNormal auch noch weg lassen.
Ich lerne, leider nur durch do it yout self und lesen!
Sich mit jemanden mal unterhalten der das alles kann, wäre toll.

_________________
Alter Basic+Clipper Programmierer, Versuche mich in Access 2010- Habe das Office 2010
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: [DANKE-ERLEDIGT] Join in einer Abfrage 2 Gast 803 01. März 2004, 08:36
ppc [DANKE-ERLEDIGT] Join in einer Abfrage
Keine neuen Beiträge Access Tabellen & Abfragen: Wie kann ich mehr als 255Felder in eine Abfrage legen? 1 D.R. 2235 12. Feb 2004, 09:05
faßnacht(IT); Wie kann ich mehr als 255Felder in eine Abfrage legen?
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage verlinken 4 dfo 1326 10. Feb 2004, 22:17
Willi Wipp Abfrage verlinken
Keine neuen Beiträge Access Tabellen & Abfragen: Suche Hilfe zu SQL (DAO 351 MS) - Abfrage 3 Berny_H 1005 04. Feb 2004, 11:41
borstel Suche Hilfe zu SQL (DAO 351 MS) - Abfrage
Keine neuen Beiträge Access Tabellen & Abfragen: Wie kann ich ein Formular erstellen ? 1 Gast 683 01. Feb 2004, 13:34
borstel Wie kann ich ein Formular erstellen ?
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage, die sich auf 2 Abfragen + 1 Tabelle bezieht 1 caro456 1832 27. Jan 2004, 20:03
Willi Wipp Abfrage, die sich auf 2 Abfragen + 1 Tabelle bezieht
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage von Datensätzen ohne Inhalt 3 sebwa 2053 23. Jan 2004, 23:19
Gast Abfrage von Datensätzen ohne Inhalt
Keine neuen Beiträge Access Tabellen & Abfragen: Access abfrage nach 2 parametern 1 Weedy 3466 13. Jan 2004, 00:21
reke Access abfrage nach 2 parametern
Keine neuen Beiträge Access Tabellen & Abfragen: Formular schließen und öffnen 3 daMike 14586 26. Nov 2003, 20:50
Gast Formular schließen und öffnen
Keine neuen Beiträge Access Tabellen & Abfragen: SQL Abfrage mit VBA 3 daMike 1729 26. Nov 2003, 17:58
daMike SQL Abfrage mit VBA
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage mit Spalte zur Durchnummerierung 2 Hanno 921 20. Nov 2003, 12:18
Hanno Abfrage mit Spalte zur Durchnummerierung
Keine neuen Beiträge Access Tabellen & Abfragen: Brauche Ergebnis einer Abfrage in anderer Form 2 Sieben 911 16. Nov 2003, 20:07
gast Brauche Ergebnis einer Abfrage in anderer Form
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Access Tabellen