Neuigkeiten:

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

Mobiles Hauptmenü

Fehler beim Kompilieren Variable nicht definiert

Begonnen von Benny80, April 20, 2019, 12:19:26

⏪ vorheriges - nächstes ⏩

Benny80

Ich hab zwar im Netz einige Post mit dem selben Titel gefunden, doch geht es dabei nicht um mein Problem.

Also ich besitze eine Datenbank.
Diese hat vorher schon eine Tabelle mit Primärschlüssel besessen, sowie Spalten, wo als Zahl eine Verlinkung (über Abfrage) zu verschiedenen Tabellen bestand, deren Primärkey als Fremdkey in diese Spalte eingetragen wurde. Und bis jetzt gab es kein Problem.

Ich habe nun eine neue Tabelle erstellt und deren Primärkey ist (wie bei den anderen Tabellen auch ein Autowert.

Nun habe ich meiner Haupttabelle (wie vorher auch schon) eine neue Spalte hinzugefügt mit der Eigenschaft Zahl. (wie die anderen auch).

Diese habe ich in der Abfrage nun ebenfalls verbunden.

Primärkey als Fremdkey der neuen Tabelle mit Spalte der Haupttabelle.

Ich kann diesen Wert auch manuell über das Formular über ein Pulldown Menü auswählen und setzen. Auch kann ich bei den schon bestehenden Datensätzen durch manueller Eingabe in der Haupttabelle in der Spalte für den Fremdkey den Wert bestimmen.

Bloss wenn ich nun wie zu vor den Wert versuche über die Funktion...

Private Sub BtnNewChar_Click()
    DoCmd.GoToRecord , , acNewRec
    FS00Name = 1
    FS00Adresse = 1
    FS00Material = 1
End Sub

Wobei FS00Material die neue Spalte der Haupttabelle (mit der Eigenschaft Zahl) ist und dem Primärwert (AutoWert) aus der neuen Tabelle 1 ist.

Kommt die Fehlermeldung vom Titel.

Was habe ich übersehen?
Die Eigenschaft in der Haupttabelle ist die gleiche, wie bei den anderen wo es funktioniert. (Zahl)
Und die Eigenschaft der neuen Tabelle ist wie bei den anderen AutoWert.
Und Manuell kann ich es auch machen. Aber der Code der bei den anderen Funktioniert, funktioniert nicht bei der neuen Verbindung...

Auch die Funktion
Datenbank komprimieren und reparieren hab ich auch schon mehrmals gemacht.

Wenn man das gleiche macht, mit den selben Eigenschaften, sollte doch auch das gleiche Funktionieren oder?

Benny80

Lösung: ...

Man muss anscheinend im Formular, als Haupteigenschaft "Datensatzquelle noch mal aktualisieren....


DF6GL

Hallo,

Ich würde die Fehlermeldung als authentisch nehmen und prüfen, ob alle 3 angegebenen Feld- (oder eben Variablen-)Namen wirklich existieren. 

Dabei müssen die Namen, wenn es sich um Tabellen- oder Formularfelder handelt,
erstens in der Datenherkunft des Forms vorhanden sein
zweitens jeweils einen dieser Bezeichnungen als "Name" haben.

Um zu kennzeichnen, dass es sich um Verweise auf ein Formularsteuerelement und nicht um eine Variable handelt,

sollte das Form-Objekt mit "Me!Steuerelementname" referenziert werden:

    Me!FS00Name = 1
    Me!FS00Adresse = 1
    Me!FS00Material = 1

Was hierbei die "Magic Numbers"  (1) verloren haben, erschließt sich mir nicht, derweil "FS00Name" und "FS00Adresse mit hoher Wahrscheinlichkeit den Datentyp TEXT aufweisen.


Des Weiteren sollte im Beziehungsfenster die ref. Integrität der Beziehungen  der Tabellen eingestellt, nicht allein nur eine Verknüpfungslinie in einer Abfrage gezogen werden.

Grundsätzlich muss an der sinnvollen und aussagekräftigen Benamsung gearbeitet werden wie auch an der konsequenten expliziten Deklaration von Variablen.


(In allen Modulköpfen "Option Explicit" angeben und danach den Code debuggen/kompilieren)
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