Fehler:'Sub, Function od.Property erwartet'

Mahlzeit an Alle!

Hab da mal wied.ne Frage an Euch.

Habe eine Click-Prozedur erstellt, in der Werte an Tabellen weitergegeben werden.

Das Ganze hat auch schonmal geklappt(glaube zumindest mich daran erinnern zu können)

Aber jetzt bekomme ich die Fehlermeldung: „Sub, Function od.Property erwartet“

Was bedeutet das genau? Versteh ich nicht so ganz…

Hier noch ein Teil der Prozedur:

Private Sub NeuerMatchcode_Butt_Click()

Dim Mldg, Titel, Hersteller
Dim z, p, o, b As Variant
Dim objcon As ADODB.Connection
Dim rstTab As ADODB.Recordset

If MsgBox(„Wollen Sie neuen Matchcode hinzufügen?“, vbYesNo + vbQuestion, „Neuer Matchcode“) = vbYes Then

z , p, o, b = InputBox(„Bitte geben Sie den Matchcode ein:“, „Neuer Matchcode“)

Set objcon = Application.CodeProject.Connection
Set rstTab = New ADODB.Recordset
rstTab.CursorType = adOpenDynamic
rstTab.LockType = adLockOptimistic
rstTab.CursorLocation = adUseClient
rstTab.Open „Softwarebestand“, objcon, , , adCmdTable

rstTab![Matchcode] = z
rstTab![MatchcodeP] = p
rstTab![MatchcodeO] = o
rstTab![MatchcodeB] = b
rstTab.Update

aktualisieren_Click
Matchcode_Lst.Requery
MatchcodeP_Lst.Requery
MatchcodeO_Lst.Requery
MatchcodeB_Lst.Requery

Kann man das mit den Variablen „z, p, o, b“ so machen?(habe 4 Tabellen, in die ich jeweils eine Variable weitergebe)

Ich weis…Syntax ist sch****…aber naja…

MfG Sabine L.

Das kann man so natürlich nicht machen, wenn, dann:

z = InputBox("Bitte geben Sie den Matchcode ein:", "Neuer Matchcode")
p = Z
o = z 
b = z

wobei du natürlich keine 4 Variablen brauchst, wenn eh das gleiche drin steht - und auch sonst kommt mir der Code recht durchwachsen vor…

(Und: Wer Inputboxen verwendet, führt auch Omas auf die Straße… :wink:

Gruß aus dem Norden
Reinhard Kraasch
(http://www.kraasch.de - Access Tipps & Tricks)

Hallo Reinhard,

genau das ist ja das Problem: es steht ja nicht das gleiche drin!

In deinem Lösungsvorschlag wird ja dann immer z in jede tabelle geschrieben oder!?

Das soll ja aber nicht geschehen.

Sondern:
z soll in Tabelle „MatchcodeZ“ geschr.werden
p soll in Tabelle „MatchcodeP“ geschr.werden
o soll in Tabelle „MatchcodeO“ geschr.werden
b soll in Tabelle „MatchcodeB“ geschr.werden

MfG Sabine L.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Ich weiss ja nicht, was du da vor hast bzw. wozu es gut sein soll…

Dim objcon As ADODB.Connection
Dim rstTab As ADODB.Recordset

If MsgBox("Wollen Sie neuen Matchcode hinzufügen?", vbYesNo + vbQuestion, "Neuer Matchcode") = vbYes Then
 Set objcon = Application.CodeProject.Connection
 Set rstTab = New ADODB.Recordset
 rstTab.CursorType = adOpenDynamic
 rstTab.LockType = adLockOptimistic
 rstTab.CursorLocation = adUseClient
 rstTab.Open "Softwarebestand", objcon, , , adCmdTable

 rstTab![Matchcode] = InputBox("Bitte geben Sie den Matchcode ein:", "Neuer Matchcode")
 rstTab![MatchcodeP] = InputBox("Bitte geben Sie den Matchcode ein:", "Neuer Matchcode")
 rstTab![MatchcodeO] = InputBox("Bitte geben Sie den Matchcode ein:", "Neuer Matchcode")
 rstTab![MatchcodeB] = InputBox("Bitte geben Sie den Matchcode ein:", "Neuer Matchcode")

 rstTab.Update
end if

Ansonsten: Mit

Dim z, p, o, b As Variant

definierst du mehr zufällig 4 Variants.

Dim z, p, o, b As String

liefert z,p,o als Variants und b als String!

Gruß aus dem Norden
Reinhard Kraasch
(http://www.kraasch.de - Access Tipps & Tricks)

Hallo nochmal :smile:

Danke dass du versuchst mich zu verstehen *g*

Glaube ich erklärs nochmal…

Mit deiner Lösung werden ja 4 InputBoxen erzeugt und die Werte, die ich da dann eingebe werden nacheinander einzeln in die Tabellen geschrieben.

Ungefähr so:
In die 1.InputBox gebe ich ein:
„Drucker“ >> in Tabelle „Matchcode“ erscheint"Drucker"

In die 2.InputBox gebe ich ein:
„Sound“ >> in Tabelle „MatchcodeP“ erscheint „Sound“…usw.

Will aber eigentlich nur eine InputBox haben und aufgrund einer ComboBox in der als Sachgebiet z.B. „Treiber“ steht, sollen die Werte dann auch in die Tabelle „Matchcode“ geschrieben werden.

Dazu muss ich noch sagen:
zu Sachgebiet „Treiber“ gehört Matchcode
zu Sachgebiet „Programme“ gehört MatchcodeP
zu Sachgebiet „Office“ gehört MatchcodeO
zu Sachgebiet „Betriebssysteme“ gehört MatchcodeB

Versteht man mich überhaupt? *schnutezieh*

P.s. ich führe keine omis auf die straße, eher opis :wink:

MfG Sabine L.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

So ganz versteh ich dich nicht…
Wozu überhaupt die Inputbox, wenn du ein Eingabeformular hast! Normalerweise macht man dort die Eingabe…

Gruß aus dem Norden
Reinhard Kraasch
(http://www.kraasch.de - Access Tipps & Tricks)

Ja, ich weis.
Aber hab nunmal jetzt die InputBoxen schon. Will das nich nochmal verändern.
Oder sollte ich?
MfG Sabine L.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Ist doch eine banale Änderung - einfach ein Formularfeld einfügen und verwenden:

Set objcon = Application.CurrentProject.Connection
objcon.Execute "UPDATE Softwarebestand SET [" & \_ 
 Me!DeinKombifeld & "] ='" & Me!Matchcode & "'"

oder wie auch immer…

Gruß aus dem Norden
Reinhard Kraasch
(http://www.kraasch.de - Access Tipps & Tricks)