Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: alex-fl am Dezember 18, 2016, 11:22:22

Titel: DefaultValue bei Formular und gleicher Tabelle
Beitrag von: alex-fl am Dezember 18, 2016, 11:22:22
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
Titel: Re: DefaultValue bei Formular und gleicher Tabelle
Beitrag von: MzKlMu am Dezember 18, 2016, 11:28:27
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
Titel: Re: DefaultValue bei Formular und gleicher Tabelle
Beitrag von: Lachtaube am Dezember 18, 2016, 11:32:28
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)
Titel: Re: DefaultValue bei Formular und gleicher Tabelle
Beitrag von: alex-fl am Dezember 18, 2016, 11:41:58
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!cboBoat

Darum wollte ich das in die Tabelle schreiben
oder liegt ein anderer Fehler vor?
ZitatEdit Code eigefügt
Titel: Re: DefaultValue bei Formular und gleicher Tabelle
Beitrag von: Lachtaube am Dezember 18, 2016, 11:44:35
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
Titel: Re: DefaultValue bei Formular und gleicher Tabelle
Beitrag von: alex-fl am Dezember 18, 2016, 13:32:34
:-)
Manchmal braucht man für solche Ideen einfach ein solcher Tipp wie von dir @Lachtaube

Danke