2016-05-24 13 views
0

Ich habe ein Formular, wo ich gekaufte Artikel von Kunden anzeigen kann, aber wenn ich neue Datensatz in diesem Formular legen möchte owner_id (auf meiner Sprache ID_vlasnika) auf Null gesetzt ist und ich automatisch setzen möchte owner_id auf denselben Wert wie zuvor.Keep Textfeld Wert beim Ändern von Datensatz

enter image description here

enter image description here

Antwort

1

Es gibt "eine elegantere fix" - setzte die Default des Feldes in der OnCurrent Veranstaltung:

Private Sub Form_Current 

    If Not Me.NewRecord = True Then 
     Me!ID_vlasnika.DefaultValue = Me!ID_vlasnika.Value 
    End If 

End Sub 
+0

Ich bin mir nicht sicher, was genau du gedacht hast. Wo sollte ich diesen Code einfügen? –

+1

@IvanNavratil geht es in der Form 'Current()' Ereignis, wie in der Überschrift angegeben. – MoondogsMaDawg

+0

Nur für die Optimierung, können Sie schreiben "Wenn nicht Me.NewRecord Then", müssen Sie nicht testen, ob ein Boolean gleich True oder False ist, können Sie einfach testen "If boolean then". Sie können es unabhängig von der Programmiersprache, die Sie tatsächlich verwenden. –

1

jemand eine elegantere fix hat, aber hier ist etwas, das funktioniert:

Da dies wie eine gebundene Form aussieht, können Sie jederzeit den neuen Datensatz Navigation klicken Mit der Schaltfläche werden alle Felder gelöscht. Soweit ich weiß, gibt es keine Möglichkeiten, dieses Verhalten zu ändern.

Sie können jedoch die Navigationsschaltflächen im Eigenschaftsfenster des Formulars ausblenden und stattdessen eine Befehlsschaltfläche verwenden, um "Neuen Datensatz erstellen". Führen Sie anschließend ein Makro oder VBA aus, um einige Aktionen auszuführen, um die aktuellen Datensatzwerte zu erfassen, einen neuen Datensatz zu erstellen und die Werte anschließend wieder in die Steuerelemente zu kopieren. Hier

ist ein Beispiel für den VBA-Code:

Dim a As String 
'Declare as many dimensions as fields you want to copy 

a = Me![Naziv uredaja] 
'Set variables for all of your other fields 

'Next line creates a new record on your form 
DoCmd.GoToRecord , , acNewRec 

'Set your field back to the previous value 
Me![Naziv uredaja] = a 
'Repeat for each field you want to copy. 

End Sub 
+0

Ich bin Fehler in dieser Codezeile erhalten. "DoCmd.GoToRecord,, acNewRec." –

+0

@IvanNavratil welche Fehlernummer? – MoondogsMaDawg

+0

@IvanNavratil löschen Sie den Zeitraum am Ende. Entschuldigung, das ist meine Schuld. – MoondogsMaDawg