Access-o-Mania

Access-Forum (Deutsch/German) => Access-Hilfe => Thema gestartet von: kdk am Juli 03, 2012, 09:27:00

Titel: Wo ist der Fehler ?
Beitrag von: kdk am Juli 03, 2012, 09:27:00
Hallo zusammen,

in einer -ansonsten funktionierenden Datenbank- erscheint neuerdings immer die Warnmeldung "Laufzeitfehler 2427". Klicke ich danach auf Debuggen, spuckt er mir folgende Codezeile aus:

Me! KD_vat = DLookup ("[string]", "a_dropdown", "type = 'vat' and [value] = " & Me! vat)


Hat hier zufällig jemand eine Ahnung, was da schief läuft ?

Danke für Eure Zeit !
Titel: Re: Wo ist der Fehler ?
Beitrag von: MzKlMu am Juli 03, 2012, 09:34:45
Hallo,
und warum zitierst Du nicht auch noch die Fehlermeldung? Mit der Fehlernummer kann man nichts anfangen.


Ist value Datentyp Text oder Zahl?

Das Du das Feld String ausliest und zuweist ist Dir klar?

PS:
Ein Feldname value würde ich unbedingt vermeiden. Das ist auch eine Eigenschaft eines Feldes.
Titel: Re: Wo ist der Fehler ?
Beitrag von: kdk am Juli 03, 2012, 09:43:34
Hallo...

Die Fehlermeldung lautet "Sie haben einen Ausdruck ohne Wert eingegeben"

und ja, die Auslesung von string ist klar, genauso wie auch die Zuweisung

Titel: Re: Wo ist der Fehler ?
Beitrag von: MzKlMu am Juli 03, 2012, 09:48:49
Hallo,
und warum beantwortest Du meine Frage nicht?
ZitatIst value Datentyp Text oder Zahl?
Titel: Re: Wo ist der Fehler ?
Beitrag von: kdk am Juli 03, 2012, 09:52:34
Zitat von: MzKlMu am Juli 03, 2012, 09:48:49
Hallo,
und warum beantwortest Du meine Frage nicht?
ZitatIst value Datentyp Text oder Zahl?

Sorry, das versuche ich derzeit noch raus zu finden.
Ich habe die DB nicht programmiert, soll sie eigentlich nur testen, dementsprechend "eingeschränkt" ist mein Wissen ;-)
Titel: Re: Wo ist der Fehler ?
Beitrag von: kdk am Juli 03, 2012, 09:56:17
Value ist eine Zahl, genauer gesagt eine fortlaufende Auftragsnummer, die automatisch vergeben werden soll.
Titel: Re: Wo ist der Fehler ?
Beitrag von: DF6GL am Juli 03, 2012, 10:14:28
Hallo,

es ist "sträflich" reservierte Wörter wie "Value" oder "String" als Variablen-/Feldnamen zu benutzen...

1) setze "Type" in Ecklammern
2) entferne das Leerzeichen bei "Me! vat"
Titel: Re: Wo ist der Fehler ?
Beitrag von: kdk am Juli 03, 2012, 10:27:31
Moin moin !

Zitat von: DF6GL am Juli 03, 2012, 10:14:28

es ist "sträflich" reservierte Wörter wie "Value" oder "String" als Variablen-/Feldnamen zu benutzen...


Wie gesagt, ich habe das Ding nicht programmiert, sondern soll nur die Fehler finden  ???

Zitat von: DF6GL am Juli 03, 2012, 10:14:28

1) setze "Type" in Ecklammern
2) entferne das Leerzeichen bei "Me! vat"

Ist passiert, ändert aber leider nichts an der gegebenen Problematik ;-(
Titel: Re: Wo ist der Fehler ?
Beitrag von: DF6GL am Juli 03, 2012, 10:40:37
Hallo,

egal, wer das Ding gemacht hat, es ändert nichts an der Tatsache... ;)


Setze einen Haltepunkt an die Codezeile und prüf, ob in Me!vat  ein (Zahlen-)Wert drinsteht.
Ist dem so, dann prüfe, ob in der Abfrage (?) "a_dropdown"  die drei Spalten "String","type" und "Value" vorhanden sind.
Titel: Re: Wo ist der Fehler ?
Beitrag von: kdk am Juli 03, 2012, 11:03:20
Zitat von: DF6GL am Juli 03, 2012, 10:40:37

egal, wer das Ding gemacht hat, es ändert nichts an der Tatsache... ;)


;D

Zitat von: DF6GL am Juli 03, 2012, 10:40:37

Setze einen Haltepunkt an die Codezeile und prüf, ob in Me!vat  ein (Zahlen-)Wert drinsteht.
Ist dem so, dann prüfe, ob in der Abfrage (?) "a_dropdown"  die drei Spalten "String","type" und "Value" vorhanden sind.

Öhm...Haltepunkt ist klar, der ist gesetzt. Aber dann komm ich an meine Grenzen. Wie prüf ich denn, was in Me!vat drinsteht ?
Titel: Re: Wo ist der Fehler ?
Beitrag von: MzKlMu am Juli 03, 2012, 11:08:34
Hallo,
einfach Cursor drüber stellen, dann wird der Wert angezeigt.
Oder einfach ein Msgbox zur Anzeige des Wertes.

Und nimm die reservierten Worte raus (String, Value). Letzteres ist besonders problematisch.
Titel: Re: Wo ist der Fehler ?
Beitrag von: kdk am Juli 03, 2012, 11:28:41
Zitat von: DF6GL am Juli 03, 2012, 10:40:37

Setze einen Haltepunkt an die Codezeile und prüf, ob in Me!vat  ein (Zahlen-)Wert drinsteht.
Ist dem so, dann prüfe, ob in der Abfrage (?) "a_dropdown"  die drei Spalten "String","type" und "Value" vorhanden sind.

OK:

Me!KD_vat = Null

Und ja, "a_dropdown" ist eine Abfrage, und die drei Spalten "string", "type" und "value" sind vorhanden !
Titel: Re: Wo ist der Fehler ?
Beitrag von: MzKlMu am Juli 03, 2012, 11:34:58
Hallo,
ZitatMe!KD_vat = Null
dann findet DLookup keinen Wert.
Prüfe auch mal Me.Vat (ohne ! Leerzeichen).
Und dann schaue Dir die Abfrage direkt an, ob überhaupt ein passender Wert vorhanden ist.
Titel: Re: Wo ist der Fehler ?
Beitrag von: kdk am Juli 03, 2012, 11:51:58
Zitat von: MzKlMu am Juli 03, 2012, 11:34:58

Prüfe auch mal Me.Vat (ohne ! Leerzeichen).
Und dann schaue Dir die Abfrage direkt an, ob überhaupt ein passender Wert vorhanden ist.

Me!Vat hat tatsächlich keinen Wert eingetragen.

In der Abfrage sind diese jedoch vorhanden.
Titel: Re: Wo ist der Fehler ?
Beitrag von: MzKlMu am Juli 03, 2012, 12:03:50
Hallo,
ZitatMe!Vat hat tatsächlich keinen Wert eingetragen.
Dann musst Du Dich auch nicht wundern. Vat braucht einen Wert. Du musst also dafür sorgen, dass dieses Feld im Formular auch einen Wert hat.
Ist das Formularfeld gebunden, bzw. wie wird dieses gefüllt.
Und zeige mal den kompletten Code, keine so herausgelösten Schnippsel.
Titel: Re: Wo ist der Fehler ?
Beitrag von: kdk am Juli 03, 2012, 12:07:16

Private Sub Form_Load()

If Not IsNull(Me!vat) Then
    Me!KD_vat = DLookup("[string]", "a_dropdown", "[type] = 'vat' and [value] = " & Me!vat)
End If
End Sub
Titel: Re: Wo ist der Fehler ?
Beitrag von: MzKlMu am Juli 03, 2012, 12:15:50
Hallo,
da kann was nicht stimmen. Der Code prüft ja ob Vat Null ist, erst wenn das nicht der Fall ist, wird ja DLookup überhaupt ausgeführt. Es kann also gar nicht sein, dass Vat keinen Wert hat.

Und die Frage hast Du auch nicht beantwortet:
ZitatIst das Formularfeld gebunden, bzw. wie wird dieses gefüllt.
Titel: Re: Wo ist der Fehler ?
Beitrag von: kdk am Juli 03, 2012, 12:21:25
Zitat von: MzKlMu am Juli 03, 2012, 12:15:50

da kann was nicht stimmen. Der Code prüft ja ob Vat Null ist, erst wenn das nicht der Fall ist, wird ja DLookup überhaupt ausgeführt. Es kann also gar nicht sein, dass Vat keinen Wert hat.

Und die Frage hast Du auch nicht beantwortet:
ZitatIst das Formularfeld gebunden, bzw. wie wird dieses gefüllt.

Ich prüf das gerade, bzw. muss da wohl erst mit der Programmiererin Rücksprache halten (sofern ich diese im Urlaub erreiche...), da ich jetzt doch ganz gewaltig überfragt bin^^

Würde mich dann aber gerne wieder melden.

Vielen Dank an Euch erstmal !