Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Spalten sortieren nach Abfrage über Felder

Begonnen von datekk, März 04, 2013, 17:16:42

⏪ vorheriges - nächstes ⏩

datekk

Ok, übertragen auf meine Tabelle erhalte ich nun folgende Fehlermeldung:

Laufzeitfehler 91
Objektvariable oder With-Blockvariable nicht festgestellt.

Beim Klick auf Debuggen zeigt er einen gelben Feil auf die Zeile

  Set rs = Me.Recordset.Clone

Hier der auf meine Felder angepasste VBA Text:

Option Compare Database
Option Explicit

Private Sub Medienwahlfeld_AfterUpdate()
' Den mit dem Steuerelement übereinstimmenden Datensatz suchen.
    Dim rs As Object

    Set rs = Me.Recordset.Clone
    rs.FindFirst "[ID_Medien_Auflagen] = " & Me![Medienwahlfeld]
    If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub

Private Sub Form_Current()
    Me.Medienwahlfeld = Me.ID_Medien_Auflagen
End Sub
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

MzKlMu

Hallo,
wie ist die Datensatzherkunft des Kombis (Spaltenreihenfolge)?
Wie sind die Eigenschaften des Kombis eingestellt?
Spaltenzahl, Spaltenbreiten, gebundene Spalte ?

Wenn Du nicht klar kommst, lade die DB hoch, anonymisiert, komprimiert und gezippt.
Gruß Klaus

datekk

Kombi ist eingestellt auf Datensatzherkunft aus einer Tabelle aus den Spalten ID und Name. Spaltenbreite 1=0cm, 2=2cm

Es ist eigenlich genau so eingestellt wie bei Dir.

Wo kann denn der Fehler genau bei dieser Zeile sein?

Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

datekk

Ich habe jetzt meine Datenbank bereinigt und gezipt zur weiteren Fehlersuche...

Hier meine Datenbank.

[Anhang gelöscht durch Administrator]
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

MzKlMu

Hallo,
das entspricht nicht meinem Beispiel, das Hafo muss an die entsprechende Tabelel gebunden sein. Ohne Felder kannst Du ja nichts ´suchen. Und wenn das Formaular keine Datenherkunft (Recordset) hat, kannst Du auch kein Clon erzeugen.
Gruß Klaus

datekk

Dann schreib mir doch, wie ich die Bindung erzeugen kann. Wie muß ich nun vorgehen?
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

MzKlMu

Hallo,
anbei die geänderte DB.
- Das Hafo muss gebunden sein an die Tabelle "Medien_und_Auflagen"
- Die Felder der Tabelle "Medien_und_Auflagen" gehören in das Hafo und nicht in das Ufo
- Hafo und Ufo müssen über die Schlüsselfelder verknüpft sein.

Nebenbei:
Entferne die Nachschlagefelder in den Tabellen direkt, die sind von Übel und verhindern den sauberen Aufbau einer DB. Nachschlagefelder sind nur in Formularen als Kombifelder sinnvoll.
Nenne ID Felder nicht einfach ID, sondern mit einem bezug zur Tabelle
Fremdschlüsselfelder sollte mit einem Anhängsel (_F) gekennzeichnet sein.

Vorstehende Ratschläge habe ich nicht umgesetzt, solltest Du noch dringend machen.

Zu den Nachschlagefeldern:
http://dbwiki.net/wiki/Access_Anf%C3%A4nger:_Die_Nachteile_von_Nachschlagefeldern

[Anhang gelöscht durch Administrator]
Gruß Klaus

datekk

Sauber.. vielen Dank.. Ich verstehe nun, woran es gelegen hat... Das ist doch schon mal was.

Welche Alternative gibt es zu den Nachschlagefeldern? Wie kann man das stattdessen einrichten, dass in einer Tabelle nur bestimmte Optionen wählbar sind? Oder macht man das alles nur über Formulare?
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

MzKlMu

Hallo,
ZitatOder macht man das alles nur über Formulare?
In Formularen kannst Du diese bedenkenlos verwenden, nur in Formularen.
Gruß Klaus

datekk

Ok, wenn ich diese in den Formularen verwende, speicher ich dann z. B. in einer Preisliste das Produkt als ID oder als Text?

Also Beispielsweise

Tabelle Preisliste
Produkte| Preis
Produkt1| 1000 Euro

Oder
1            | 1000 Euro

Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

MzKlMu

Hallo,
es wird grunsätzlich nur die ID gespeichert, als Fremdschlüssel, niemals der Text. Der Text wird in einem Kombi angezeigt.
2 Spalten für das Kombi, Spalte 1 die ID, Spalte2 der Text.
Gebundene Spalte = die ID
Spaltenbreiten: 0cm:5cm. Daurch wird die ID ausgeblendet, aber der Text angezeigt. Gespeichert wird die ID.
Gruß Klaus

datekk

Genau... Super vielen Dank für Deine tolle Hilfe... Ich denke, jetzt komme ich ein ganzes Stück weiter. Ich habe ein bischen damit rumprobiert und komme ganz gut zurecht. Also nochmals 1000 Dank :)
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

datekk

Eine Frage habe ich dann aber doch noch:

Wenn man dann z.B. in einer Preisliste nur noch die ID´s gespeichert hat, wie kann man dann aus diesem Zahlenchaos einen vernünftigen Bericht erstellen, in dem dann wieder der Text erscheint?
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

MzKlMu

Hallo,
na über eine Abfrage mit den beteiligten Tabellen und der Beziehung über die Schlüsselfelder. Dann hast Du automatisch auch die Klartexte zur Anzeige. Das ist alles ganz einfach, ohne etwas programmieren zu müssen.

Übrigens. die ID eines Datensatzes ist im Regelfall nie zu sehen, die wird immer ausgeblendet. Diese dient ausschließlich der Herstellung der Beziehungen und ist für den User völlig bedeutungslos. Von Besonderheiten abgesehen, wie z.B. die Monatstabelle da würde man die Zahl ggf. auch zeigen, weil diese ja auch den Monat darstellt.

Bei der Gelegenheit, der Monatsname ist in Deiner Tabelle "Monatsdaten" auch überflüssig, aus der Zahl erhält man in einer Abfrage auch den Monat, automatisch.
Gruß Klaus

datekk

Es ergibt sich wieder eine Frage:

wie kann ich Abfragen mit dem Formular verknüpfen, so dass die Suche genau so mit dem Kombifeld funktioniert wie wenn das Formular mit einer Tabelle verknüpft ist?
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps