Neuigkeiten:

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

Mobiles Hauptmenü

Bericht aus ausgewähltem Formular mit unterformular erstellen

Begonnen von Icemann1970, Januar 13, 2017, 21:11:13

⏪ vorheriges - nächstes ⏩

Icemann1970

Hallo, ich wieder mal.
Habe eine Große DB, möchte aus einem Offenen Formular den passenden Bericht öffnen. Habe den Code :  DoCmd.OpenReport "Bericht", acViewPreview, , "ID = " & Me.ID  versucht einzubauen, leider ohne Erfolg. (Der Code funktioniert in einer kleinen DB bezogen auf eine Tabelle) aber mein Formular bezieht sich auf mehrere Tabellen, die über eine Abfrage selektiert wird. Die ID habe ich natürlich mit dem passenden Namen ersetzt. Leider habe ich seit der Erstellung nicht auf richtige Bezeichnung geachtet --> viele Felder haben Wörter mit Leerzeichen "Geräte Nummer" z.B.

Ich habe schon gesucht aber keine Lösung für mein Problem gefunden.
Mfg. Udo

ebs17

Zitatleider ohne Erfolg
Wie zeigt sich der Misserfolg?

Was hat die Datenherkunft des Formulares mit dem Bericht bzw. dessen Datenherkunft zu tun?

Wenn Du eine schnelle Problemlösung möchtest, solltest Du in vollständigen Zusammenhängen schildern.
Mit freundlichem Glück Auf!

Eberhard

Icemann1970

Hallo Eberhard

Private Sub Befehl46_Click()
    DoCmd.OpenReport "Bericht", acViewPreview, , "Geräte Nummer = " & Me![Geräte Nummer]
End Sub

Fehlermeldung: Syntaxfehler (fehlender Operator) in Abfrageausdruck 'Geräte Nummer =1'.

Zeile DoCmd wird gelb angezeigt


Schreibe ich Me!Geräte Nummer   ohne [ ] kommt Fehler beim Kompilieren; Erwartet:Anweisungsende. und Nummer wird blau makiert.
Mfg. Udo

ebs17

Die WHERE-Bedingung bei Openreport, wie auch alle anderen Filter, ist in purem SQL zu schreiben, sie entspricht dem WHERE-Teil einer SQL-Anweisung ohne das Schlüsselwort WHERE.

SQL selber mag nun keine (Feld)Bezeichnungen, die Leer- und Sonderzeichen enthalten. Dass der SQL-Interpreter irritiert ist, bemerkst Du ja an der Meldung.

..., "[Geräte Nummer] = " & Me![Geräte Nummer]
Auch die Feldbezeichnung ist mit eckigen Klammern zu maskieren. Besser ist es, gleich auf ordentliche Bezeichnungen zu orientieren.
Mit freundlichem Glück Auf!

Eberhard

Icemann1970

Ja das mit den Feldbezeichnung ist schon zu spät. Wird in Zukunft nicht wieder geschehen.
Wenn in nun beide Geräte Nummern in [ ] setze kommt die Meldung: Datentypenkonflikt in Kriterienausdruck.
Mfg. Udo

ebs17

Die Beseitigung eines Fehlers ermöglicht das Wirken des nächsten.

ZitatDatentypenkonflikt
Konflikte gibt es bei Ungleichheit.
Welche Datentypen hast Du denn vorliegen? Auf die Idee, selber nachzuschauen, darf man auch einmal selber kommen.

Zitatdas mit den Feldbezeichnung ist schon zu spät
Wozu gibt es die eingeschaltete Performancebremse Objektnamenautokorrektur?
Sinnvoll wäre aber die Anwendung des Add-Inn Search & Replace von Rick Fisher.
Mit freundlichem Glück Auf!

Eberhard

Icemann1970

Sorry, ich glaube das ich hier falsch bin, wollte keine Umstände im Forum machen. Habe nichts mit Programmierung zu tun, hatte mir die DB "gebastelt" ohne Ahnung zu haben.
Hätte ich gewusst das es eine " Performencebremse Objektnamenautokorrektur " gibt und ich gewusst hätte was das ist hätte ich das angewendet.
Selber nachgeschaut habe ich nun schon eine Woche lang. Naja, dann werde ich mal weiter suchen.
Vielen Dank für die mühe.
Mfg. Udo

Beaker s.a.

Hallo Udo,
Bei "[Geräte Nummer]" könnte ich mir vorstellen, dass das ein Feld vom Typ "Text"
ist. Wenn das so ist:
Zitat
..., "[Geräte Nummer] = '" & Me![Geräte Nummer] & "'"

ZitatSorry, ich glaube das ich hier falsch bin, wollte keine Umstände im Forum machen.
Mitnichten; - nur Foren sind Hilfe zur Selbsthilfe. Und da wird von den Helfern
eben auch ein bisschen Mitarbeit gefordert. Erste Anlaufstelle immer die Online-
Hilfe (OH). Und, heut zu Tage, natürlich Google. Allein der Suchbegriff "access
tabellenfeld umbenennen" bringt gut 3 Tsd. Ergebnisse, "objektnamen autokorrektur
Access" weitere ca. 700.
gruss ekkehard

P.S. Eberhard setzt manchmal den Wissensstand von Anfängern etwas zu hoch an.
Muss man ihm nicht übel nehmen, sondern als Ansporn verstehen.
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Icemann1970

Vielen Dank Ekkehard.
Das Problem Bericht ist gelöst !!!!
Sorry @ Eberhard, war mit den Nerven am Ende.
Problem mit der Objektnamen Korrektur werde ich kommende Woche mit anfangen.
Schönes WE
Gruß Udo
Mfg. Udo

ebs17

#9
ZitatProblem mit der Objektnamen Korrektur werde ich kommende Woche mit anfangen.
Vielleicht eine kleine Einführung: Die Objektnamen-Autokorrektur als Eigenschaft einer Access-DB ist standardmäßig eingeschaltet. Wenn man diese selber ausschaltet, sollte einem das bewusst sein. Wer davon noch nichts gehört hat, hat ziemlich sicher nichts abgeschaltet.

Was macht diese Einstellung: Das, was der Name aussagt. Wenn man eine Tabellen- oder Feldbezeichnung in der Tabellendefinition ändert, werden dadurch diese Bezeichnungen auch in Abfragen geändert. Allerdings reicht dies nicht bis in VBA-Codes und ist somit nicht vollständig für die Datenbank. Daher hatte ich im Folgesatz ein Add-In erwähnt, das durchgehend wirkt. Und ich hatte da schon die Erwartung, dass ein Leser den unmittelbaren Folgesatz auch soweit zur Kenntnis nimmt, dass er im Verstand ankommt.

Performancebremse daher, wenn laufend Bezeichnungen auf Änderungen geprüft werden, verbraucht das Ressourcen, die dann den eigentlichen Berechnungen entzogen werden, um so mehr, wenn man durch vorheriges Planen Bezeichnungen gar nicht ändern wird.

Das Ganze wiederum war ein Nachtrag zu Bezeichnungen und hatte mit dem dann aktuellen Fehler nichts zu tun, erkennbar am vorangestellten Zitat.

Zwei, drei Sätze im Zusammenhang und richtig lesen hat nun in meiner Vorstellung nichts damit zu tun, ob man in irgendwas Neuling ist oder nicht, sondern mit etwas Allgemeinbildung, die ich tatsächlich voraussetze und jedem unterstelle.
Mit freundlichem Glück Auf!

Eberhard