Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Problem Berichterstellung Access

Begonnen von Jacksen66, Oktober 07, 2016, 19:59:02

⏪ vorheriges - nächstes ⏩

Jacksen66

Danke für deine schnelle hilfe. Habe auch soweit alles geänder was du geschrieben hast mit dem Namen und den code in ein Modul ein zu tragen. Leerzeichen in den Daten sollten eigentlich nicht vorhanden sein, so hoff ich mal.

Was ich aber jetzt nicht ganz verstehen ist
ZitatDie Aktualisierung des Textfeldes sollte nach Eingabe einer Fahrzeugmarke angestoßen werden.

Meinst du das so das ich dann in meinem Formular eine Fahrzeugemarke eingeben muss oder wie soll ich das verstehen.

MaggieMay

ZitatLeerzeichen in den Daten sollten eigentlich nicht vorhanden sein
Es geht nicht um Leerzeichen in den Daten, sondern in deinem Kriterienstring, und zwar hier:
ZitatWHERE Marke = ' " & [Marke] & " ' ";",";",")

ZitatWas ich aber jetzt nicht ganz verstehen ist
Du hattest doch ein Formular zum Testen erstellt, dort muss nach der Eingabe einer Marke das Textfeld mit der Typenliste aktualisiert werden - dachte ich. Das tut es aber wohl von ganz allein. :-)
Freundliche Grüße
MaggieMay

Jacksen66

Habe jetzt das mal probiert und die leerzeichen aus der Formel raus genommen und folgendes Passiert:

Nach dem ich den Kriterienstring geändert habe wurde dieser folgendermassen von access formatiert
Zitat=SQLListe("SELECT Fahrzeugname FROM Zusammenfassung WHERE Fahrzeugmarke = '" & [Fahrzeugmarke] & "'";",";",")

Nun wenn ich den bericht öffne dann erscheint bei der Kategorie "geht nicht". Dies ist ja richtig wenn ein fehler vorliegt. Also wird der code as dem allg. Modul aufgerufen aber funktioniert nicht. Dieses Geht nicht habe ich extra eingetragen um zu sehen ob er überhaupt den code benutzt.

Teilauschnitt des Codes im allg. Modul wegen der zuvor beschriebenen Veränderung:
ZitatOn Error Resume Next
  Set DB = CurrentDb()
  Set RS = DB.OpenRecordset(SQL, dbOpenSnapshot)
  If Err.Number <> 0 Then
    Res = "Geht nicht"  -- Vorher "#Fehler"
    Err.Clear
  Else

Also werden leider nicht die Autotypen in zeile geschrieben sondern wo vorher die einzelnen typen unter einander standen steht jetzt "geht nicht"

MaggieMay

Hast du die Abfrage "Zusammenfassung" denn auch angepasst?

Du könntest einen Haltepunkt in die VBA-Prozedur setzen und genauer hinschauen was zu dem Fehler führt.
Bspw. kannst du dir den übergebenen SQL-String ansehen, per Debug.Print ins Direktfenster ausgeben, kopieren und im SQL-Fenster einer neuen Abfrage testen.
Freundliche Grüße
MaggieMay

Jacksen66

Also habe jetzt statt die abfrage zu nehmen die Tabelle "Autotabelle" genommen. Somit funktioniert das einwandfrei. Also es werden alle autotypen angezeigt die dieser Marke sind. Nun hab ich aber das problem das ich alle autos angezeigt bekomme. Das soll ja nicht sein denn der Preis soll ja auch damit einfliesen. Deswegen ja die abfrage. Aber mit dieser geht es ja nicht wirklich. Nun die frage ob man den SQL String so erweitern könnte das nach der marke und dann nach dem preis gesucht wird und mir dann alle Autos ausgegeben werden die diesen Kriterien entsprechen.

MaggieMay

Zeig doch bitte den SQL-Code zur Abfrage, damit man sieht warum es damit nicht geklappt hat.

Und was ist mit dem Preis, wo soll der mit einfließen?
Freundliche Grüße
MaggieMay

Jacksen66

#21
ZitatAlso der code ist vollkommen der Gleiche bis auf die Tatsache das ich bei dem kriterium was geändert habe und zwar von

Zitat=SQLListe("SELECT Fahrzeugname FROM Zusammenfassung WHERE Fahrzeugmarke = '" & [Fahrzeugmarke] & "'";",";",")

auf

Zitat=SQLListe("SELECT Fahrzeugname FROM Autotabelle WHERE Fahrzeugmarke = '" & [Fahrzeugmarke] & "'";",";",")

Somit werden mir dann alle Fahrzeuge die zur marke Seat gehören angezeigt. Das ist ja schonmal gut aber jetzt soll ja wie in dem Suchformular ja nur die Autos angezeigt werden die auch den entsrechenden Preis haben

Habe gedacht man könnte das dann so ins Kriteriumfeld schreiben mit dem Preis als 2tes Kritrium. Aber geht leider nicht

Zitat=SQLListe("SELECT Fahrzeugname FROM Autotabelle WHERE Fahrzeugmarke = '" & [Fahrzeugmarke] & "' AND Preis = '" & [Preis] & "'";",";",")

Hat sich erledigt habe gerade herausgefunden warum es nicht funktioniert hat. Musste den Preis als Text Formatieren und nicht als Zahl. Das ist auch nicht weiter schlimm da mit diesem wert so oder so nicht gerechnet wird.

Aber hab jetzt noch eine Sache und zwar wenn ich dann beim öffnen des Berichts ein Autohaus eingebe und dann den preis dann wird mir das ergebnis auch so angezeigt wie ich es haben will aber jetzt kommt das problem. Wenn ich das über das formular eingebe dann erscheint dann im unter formular folgendes:



AutohausMarkeFahrzeugnamePreis


BecherSeatIbizza850


BecherSeatMii850


BecherVWPolo850
usw...

Nun wenn ich den Bericht öffne dann kommt:



LogoMarkeFahrzeugname


Seat-LogoSeatIbiza, Mii


Seat-LogoSeatIbiza, Mii


VW-LogoVWPolo, usw...

Also soll bedeuten das es wie im Unterformular angezeigt wird auch im Bericht doppel angezeigt. Ich bräuchte es aber nur einmal im Bericht stehen, also so:



LogoMarkeFahrzeugname


Seat-LogoSeatIbiza, Mii


VW-LogoVWPolo, usw...

Gibt es da eine möglichkeit das zu bewerkstelligen?

DF6GL

Hallo,

Du solltest Dich mal mit der Bedeutung der Datentypen auseinandersetzen und die auch konsequent beachten. "Preis" ist sehr vermutlich kein Tabellenfeld mit Datentyp "TEXT" , eher mit Double oder Currency (Währung) , d. h. Gleitkomma- oder Festkommazahl.

Weil im SQL-Code der Punkt als Dezimal-Trennzeichen zu verwenden ist, muss der Kriteriumswert , der (bei deutscher Umgebung) normalerweise ein Komma ist, entspr. umgewandelt werden:

=SQLListe("SELECT Fahrzeugname FROM Autotabelle WHERE Fahrzeugmarke = '" & [Fahrzeugmarke] & "' AND Preis = " & Str([Preis]) ;",";",")
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Jacksen66

Danke sehr. Habe ich korriegiert und funktioniert einwandfrei. Danke nochmal. Auch das mit dem einzelanzeigen habe ich hin bekommen.

Und ja DF6GL ich sollte mich da mal wirklich mit beschäftigen. Danke für eure hilfe und eure Geduld. Ich weis es war bei weitem nicht einfach.