Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: ide89 am November 28, 2014, 17:09:42

Titel: Abfrage Kriterium aus Formularfeld übernehmen
Beitrag von: ide89 am November 28, 2014, 17:09:42
Guten Tag,

ich habe ein Problem bei einer Abfrage die als Suche fungieren soll. Ich habe ein Formular welches über ein Textfeld verfügt und einen Button der die Abfrage ausführt. In dem Textfeld gebene ich einen ColorCode ein (besteht nur aus Zahlen) und möchte dann mit der Abfrage nur den Datensatz ausgegeben bekommen der diesen Code enthält. Dafür habe ich in der Abfrage die Tabelle mit diesem Code ausgewählt und als Kriterium folgendes eingegeben, da ich bei meiner Rechere herausgefunden habe, dass so der Wert aus dem Textfeld als Kriterium bei der Abfrage verwendet wird:

[Formulare]![Formular]![Textfeld]

Führe ich nun diese Abrage aus oder klicke auf den Button um diese Auszufüllen erscheint ein Eingabefeld und ich muss den ColorCode manuell eingeben. Ich hoffe mir kann jemand helfen.
Titel: Re: Abfrage Kriterium aus Formularfeld übernehmen
Beitrag von: MaggieMay am November 28, 2014, 18:41:36
Hallo,

du musst schon die richtigen Namen einsetzen, also "Formular" = Name des Formulars und "Textfeld" = Name des Textfeldes mit dem Farbcode.
Titel: Re: Abfrage Kriterium aus Formularfeld übernehmen
Beitrag von: ide89 am November 28, 2014, 23:53:29
Hi,

sorry das war auch nur als Beispiel gedacht. Meine Formular heißt: "ColorCode Artikel suchen" und das Textfeld "txtSuche". Und das habe ich dementsprechend auch für Formular und Textfeld eingesetzt.
Titel: Re: Abfrage Kriterium aus Formularfeld übernehmen
Beitrag von: MzKlMu am November 30, 2014, 08:18:36
Hallo,
sorry, aber wie soll man nach einem Fehler suchen wenn man nicht sieht was DU gemacht hast ? Zeige also bitte den Text exakt. Und kopieren, nicht abschreiben.
Titel: Re: Abfrage Kriterium aus Formularfeld übernehmen
Beitrag von: ide89 am Dezember 01, 2014, 10:42:56
Hi

das hier ist die SQL-Ansicht:

SELECT Artikel.Artikelnummer, Artikel.Artikelname, ColorCode.Artikelfarbe
FROM Artikel INNER JOIN ColorCode ON Artikel.[Artikelnummer] = ColorCode.[Artikelnummer]
WHERE (((ColorCode.ColorCode)=[Formulare]![ColorCode Artikel suchen]![txtSuche]));
Titel: Re: Abfrage Kriterium aus Formularfeld übernehmen
Beitrag von: DF6GL am Dezember 01, 2014, 11:23:03
Hallo,


schreibe zunächst

....)=[Forms]![ColorCode Artikel suchen]![txtSuche]));

wobei das Formular natürlich auch im Anzeigemodus geöffnet sein muss.
Titel: Re: Abfrage Kriterium aus Formularfeld übernehmen
Beitrag von: MaggieMay am Dezember 01, 2014, 11:23:10
Hallo,

mich wundert die Verknüpfung über die Artikelnummer.
Sollte das nicht eher so ausssehen:
SELECT Artikel.Artikelnummer, Artikel.Artikelname, ColorCode.Artikelfarbe
FROM Artikel INNER JOIN ColorCode ON Artikel.[ColorCode] = ColorCode.[ColorCode]
WHERE (((ColorCode.ColorCode)=[Forms]![ColorCode Artikel suchen]![txtSuche]));


Wonach genau wirst du denn bei Ausführung der Abfrage gefragt?
Titel: Re: Abfrage Kriterium aus Formularfeld übernehmen
Beitrag von: ide89 am Dezember 02, 2014, 13:06:21
Hi

"Forms" hat leider nichts verändert. Es öffnet sich weiterhin ein Eingabefeld über dem folgendes steht:

Formulare!ColorCode Artikel suchen!codesuche

Wenn ich dort nun nochmal die Nummer eingebe wird die Abfrage auch ganz normal ausgeführt. Bloß ich möchte ja wenn es geht dieses Eingabefenster vermeiden.
Titel: Re: Abfrage Kriterium aus Formularfeld übernehmen
Beitrag von: MaggieMay am Dezember 02, 2014, 13:20:34
Hi,

dann gibt es das Textfeld "CodeSuche" wohl nicht im Formular.
ZitatMeine Formular heißt: "ColorCode Artikel suchen" und das Textfeld "txtSuche".

BTW:
Auf Sonder- und Leerzeichen in den Bezeichnungen solltest du besser verzichten.
Titel: Re: Abfrage Kriterium aus Formularfeld übernehmen
Beitrag von: ide89 am Dezember 02, 2014, 13:35:59
Zitat von: MaggieMay am Dezember 02, 2014, 13:20:34
Hi,

dann gibt es das Textfeld "CodeSuche" wohl nicht im Formular.
ZitatMeine Formular heißt: "ColorCode Artikel suchen" und das Textfeld "txtSuche".

das ist der Name des Buttons

BTW:
Auf Sonder- und Leerzeichen in den Bezeichnungen solltest du besser verzichten.
Titel: Re: Abfrage Kriterium aus Formularfeld übernehmen
Beitrag von: MaggieMay am Dezember 02, 2014, 13:46:02
Ich habe ehrlich gesagt keine Ahnung was du damit aussagen willst.

Ist der von dir gezeigte SQL-Code aus Antwort #4 noch gültig?
Dort ist nichts zu sehen von "codesuche"...  ???
Titel: Re: Abfrage Kriterium aus Formularfeld übernehmen
Beitrag von: ide89 am Dezember 02, 2014, 13:53:14
SELECT Artikel.Artikelnummer, Artikel.Artikelname, ColorCode.Artikelfarbe, ColorCode.ColorCode
FROM Artikel INNER JOIN ColorCode ON Artikel.[Artikelnummer] = ColorCode.[Artikelnummer]
WHERE (((ColorCode.ColorCode)=[Forms]![ColorCodeArtikelsuchen]![codesuchefeld]));
Titel: Re: Abfrage Kriterium aus Formularfeld übernehmen
Beitrag von: MaggieMay am Dezember 02, 2014, 14:11:26
Auch hier findet man nicht das angeblich nachgefragte Formulare!ColorCode Artikel suchen!codesuche
???

Du solltest langsam einsehen, dass die Fehlersuche absolut keinen Sinn macht, wenn du stets aufs Neue deine tatsächlichen Feldnamen "verschleierst".
Titel: Re: Abfrage Kriterium aus Formularfeld übernehmen
Beitrag von: ide89 am Dezember 08, 2014, 16:48:07
Hi

ich habe immer wieder Probleme mit der übergabe von Formularwerten :(
Ich habe nun mal die Datenbank hochgeladen.
Zum Prozedere:
Über das Formular "Rechnunganlegen" erzeuge ich einen Datensatz in der Tabelle Rechnung. Ich kann in dem Formular alle Bestllnummern auswählen die den status 2 haben. Mit dem klick auf Datensatz hinzufügen füge ich wie gesagt den Datensatz hinzu und öffne die Abfrage "statusnachrechnung". Diese Abfrage soll den status von 2 auf 3 setzen, damit ich in dem Formular Rechnunganlegen nicht nochmal einen Rechnung für die Bestellung anlegen kann. Bei dieser Abfrage wird die Tabelle "Bestellung" nach der Bricklink_Nr durchsucht welche den Wert "Bestell_Nr" aus dem Formular "Rechnunganlegen" erhalten soll.
Daher habe ich als Kriterium diese Form eingegeben:
[Formulare]![Formular]![Textfeld]

allerdings kommt wieder eine Parametereingabe und erst dann wird alles so gemacht wie es soll.

Diese Problematik zieht sich eigentlich durch meine ganze Datenbank das ich nicht wirklich mit dem Befehl auf Texfelder aus Formularen zugreifen kann :(

EDIT: Leider ist die DB zu groß, deswegen habe ich es über Dropbox zur Verfügung gestellt.
https://www.dropbox.com/s/3ydzhgw67cgqc5g/testDB.accdb?dl=0
Titel: Re: Abfrage Kriterium aus Formularfeld übernehmen
Beitrag von: DF6GL am Dezember 08, 2014, 17:32:16
Hallo,


-- ich würde grundsätzlich immer Forms!Formularname!Textfeldname   schreiben...auch wenn Access das wieder in "Formulare!.." umbenennt. Zu überprüfen wäre das in der SQL-Ansicht im Abfrageentwurf.

-- das Formular muss, wenn schon darauf referenziert wird, auch geöffnet sein.

-- suspekt ist auch, eine Aktionsabfrage mit "Öffnen Abfrage" zu starten.

Bei geöffneten Formular erhalte ich kein  Parameterabfragefenster...
Titel: Re: Abfrage Kriterium aus Formularfeld übernehmen
Beitrag von: ide89 am Dezember 08, 2014, 18:58:44
Hallo,

stimmt es öffnet sich kein Parameterabfragefenster da habe ich mich wohl versehen weil das war nur wenn ich die Abfrage alleine aufrufe. Allerdings wird der status 2 nicht zu status 3 geändert.
Titel: Re: Abfrage Kriterium aus Formularfeld übernehmen
Beitrag von: MaggieMay am Dezember 08, 2014, 23:23:06
Hallo,

du springst zuerst auf einen neuen Datensatz und führst erst dann die Abfrage aus.
Da hast du aber keine aktuelle Bestellnummer mehr im Formular stehen.
Titel: Re: Abfrage Kriterium aus Formularfeld übernehmen
Beitrag von: ide89 am Dezember 19, 2014, 13:28:50
Hi

ja das war der Fehler. Nun habe ich ein Problem mit dem Formular Rechnunganlegen. Dieses soll die Daten in die Tabelle Rechnung speichern. Es werden mir auch alle Werte im Formular richtig angezeigt aber es kommt dann ein Fehler, dass Rechnung.Kunde_Nr ausgefüllt sein muss. Dieses ist aber ausgefüllt! Daten genauso manuell in die Tabelle Rechnung eintragen funktioniert.

Hier die DB:

https://www.dropbox.com/s/l1j8vo2wyewvi78/DB.accdb?dl=0
Titel: Re: Abfrage Kriterium aus Formularfeld übernehmen
Beitrag von: MaggieMay am Dezember 19, 2014, 13:42:28
Hi,

das Feld ist an kein Tabellenfeld gebunden, da du einen Ausdruck als Steuerelementinhalt eingetragen hast. Versuche mal, diesen Ausdruck als Standardwert einzutragen.
Evtl. musst du das Steuerelement dann nach Eintrag/Auswahl der Bestell-Nr. aktualisieren.

Da du somit eh VBA-Code dazu brauchst, kannst du auch gleich die Kundennummer direkt zuweisen.
Titel: Re: Abfrage Kriterium aus Formularfeld übernehmen
Beitrag von: ide89 am Dezember 19, 2014, 17:21:30
Hi,

wo müsste ich das denn mit der aktualisierung anklicken? Oder wo genau muss ich einen Code dazu schreiben. Mit dem Ausdruck als Standardwert steht dort #Fehler.
Titel: Re: Abfrage Kriterium aus Formularfeld übernehmen
Beitrag von: MaggieMay am Dezember 19, 2014, 18:01:31
Wenn das nicht funktioniert mit dem Standardwert, bleibt dir nur die VBA-Lösung.
Die könnte folgendermaßen aussehen:Private Sub Bestell_Nr_AfterUpdate()
    Me.Kunde_Nr = DLookup("Kunde", "Bestellung", "[Bestell_Nr] = " & Me!Bestell_Nr) 
End Sub
Titel: Re: Abfrage Kriterium aus Formularfeld übernehmen
Beitrag von: ide89 am Dezember 19, 2014, 18:19:30
Hi

ok und wo müsste ich den COde ganz genau einfügen? Komme ich da über Rechtsklick auf das Textfeld hin ?
Titel: Re: Abfrage Kriterium aus Formularfeld übernehmen
Beitrag von: MaggieMay am Dezember 19, 2014, 18:29:56
Du gehst im Formularentwurf auf das Feld mit der Bestellnummer, lässt dir die Eigenschaften anzeigen, gehst auf Register "Ereignisse" -> "Nach Akltualisieren" und wählst dort "Ereignisprozedur". Dann gehst du über die drei Punkte in den VBA-Editor.
Titel: Re: Abfrage Kriterium aus Formularfeld übernehmen
Beitrag von: ide89 am Dezember 19, 2014, 18:43:24
Danke

aber leider kommt immer noch der Fehler
Titel: Re: Abfrage Kriterium aus Formularfeld übernehmen
Beitrag von: MaggieMay am Dezember 19, 2014, 19:21:09
Hast du denn auch den Ausdruck aus dem Standardwert entfernt?

... oder welchen Fehler meinst du?
Titel: Re: Abfrage Kriterium aus Formularfeld übernehmen
Beitrag von: ide89 am Dezember 19, 2014, 23:18:18
Hi

ja habe ich. Meine den gleichen Fehler den ich zuvor genannt hatte.
Titel: Re: Abfrage Kriterium aus Formularfeld übernehmen
Beitrag von: MaggieMay am Dezember 20, 2014, 00:28:14
Zitat von: ide89 am Dezember 19, 2014, 17:21:30Mit dem Ausdruck als Standardwert steht dort #Fehler.

Zitat von: ide89 am Dezember 19, 2014, 23:18:18Meine den gleichen Fehler den ich zuvor genannt hatte.

Sorry, aber damit kann ich nichts anfangen, das passt nicht zu den vorgeschlagenen Aktionen.
Beschreibe bitte ganz genau was du tust und was zu welchem Fehler führt.