Hallo miteinander
Ich bin seit ca. 1 Monat eine eigene Access DAtenbank am erstellen.
Durch das Buch Keine "Angst vor Microsoft Access!" bin ich sehr weit gekommen jedoch stehe ich jetzt an einer einfachen Funktion an :-)
Ich würde gerne durch einen Button(cmdStandard) das im Kombinationsfeld(cboBoat) stehende als Standardwert in die Tabelle "tbldive" Feld "boat_id_f" eintragen.
Wieso?
Wenn ich ein neue Ausfahrt(neuer Datensatz) anlege sollte immer dieser Wert als Standard eingetragen werden
Private Sub cmdStandard_Click()
Dim StandardBoat As String
StandardBoat = Str(Me!cboBoat)
'MsgBox StandardBoat
CurrentDb.TableDefs("tbldive").Fields("boat_id_f").DefaultValue = StandardBoat
End Sub
Dies ergibt den Fehler:
Laufzeitfehler 3422
Die Tabellenstruktur kann nicht geändert werden ..... ein anderer Benutzer hat die Tabelle geöffnet.
Dies ist aber nicht der Fall, somit dachte ich das Problem ist das geöffnete Formular.
Somit schliessen wir das zuerst :-) und öffnen das wieder
Private Sub cmdStandard_Click()
Dim StandardBoat As String
StandardBoat = Str(Me!cboBoat)
'MsgBox StandardBoat
DoCmd.Close acForm, "frmDive"
CurrentDb.TableDefs("tbldive").Fields("boat_id_f").DefaultValue = StandardBoat
DoCmd.OpenForm "frmDive"
End Sub
Nur kommt immer noch der gleiche Fehler :-(
Jemand eine gute Idee? habe ich mir das zu einfach vorgestellt?
Danke euch im voraus
Hallo,
da man ohnehin nicht mit Tabellen direkt arbeiten sollte, sondern nur über Formulare setzt man auch im Formular den Standardwert und nicht in der Tabelle.
Private Sub cmdStandard_Click()
Me.boat_id_f.DefaultValue = Me.cboBoat)
End Sub
Ich würde keine Standardwerte in einer Tabelle ändern, wenn diese variabel sind (Denke mal an einer Mehrbenutzerumgebung, wo zwei oder mehr Leute Daten einpflegen - jeder benötigt seinen eigenen Standardwert).
Im Eingabeformular kannst Du dem Steuerelement doch auch einen Standardwert übermitteln. Siehe Standardwert aus vorherigem Datensatz (http://www.donkarl.com/FAQ/FAQ4Formulare.htm#4.22)
Danke für eure schnelle Antwort
Dies hatte ich anfangs auch so umgesetzt.
Wenn ich jetzt jedoch das Formular schliesse und wieder öffne ist der Standardwert weg.
Me!cboBoat.DefaultValue = Me!cboBoatDarum wollte ich das in die Tabelle schreiben
oder liegt ein anderer Fehler vor?
ZitatEdit Code eigefügt
Man kann sich Einstellungen in Tabelle(n) - hier im Frontend, oder in Properties, oder in der Registry oder in Ini-Dateien o. ä. merken. Tempvars wären für eine Session gut.
PS: ich hätte Angst vor dem Buch, wenn es da keinen Hinweis zu gibt. ;D
:-)
Manchmal braucht man für solche Ideen einfach ein solcher Tipp wie von dir @Lachtaube
Danke