Hallo Marie,
Dein erstes Makro kenne ich, aber leider ist es nicht das was ich will.
Am besten ich beschreibe den Aufbau meines Formulars erst einmal ausführlich.
Ich habe folgende Textboxen, in die die Seriennummern eingegeben werden (Primärschlüssel):
txt_To enthält die erste Seriennummer eines Projektes
txt_From enthält die letzte Seriennumer eines Projektes
... also z. B. Seriennummer 1 bis 10. Das hat den Vorteil, dass ich die Seriennummern nicht einzeln eingeben muss (dazugehöriges Makro ist unten).
Zu diesen Textboxen Seriennummern gehören die u. g. Textboxen
txt_Comments_Sales_OrdNo
txt_Comments_Sales_Comar)
txt_Project
txt_Qty
txt_Annex
txt_Base_Discount
txt_Additional_Discount
txt_List_Price_per_Unit_USD
txt_Special_Handling_Costs_per_Unit_USD
txt_Estimated_Freight_Costs_per_Unit_USD
txt_Insurance_Costs_per_Unit_USD
txt_Contracted_Value_per_Unit_USD
txt_List_Price_per_Unit_EUR
txt_Special_Handling_Costs_per_Unit_EUR
txt_Estimated_Freight_Costs_per_Unit_EUR txt_Insurance_Costs_per_Unit_EUR
txt_Contracted_Value_per_Unit_EUR
Alle Werte der Textboxen werden in die Tabelle Sales_Data geschrieben.
Hier das Makro, mit dem ich die Daten aus den Textboxen in die Tabelle eintrage.
Private Sub cobu_Data_Entry_Click()
On Error GoTo Err_Command10_Click
Dim rst As ADODB.Recordset
Dim conn As ADODB.Connection
Dim txt_To As Variant
Set rst = New ADODB.Recordset
Set conn = CurrentProject.AccessConnection
rst.Open "Tbl_Sales_Data", conn, adOpenKeyset, adLockOptimistic
Forms!Frm_Sales!txt_To = IIf(IsNull(Forms!Frm_Sales!txt_To), Forms!Frm_Sales!txt_From, Forms!Frm_Sales!txt_To)
For ID = Forms!Frm_Sales!txt_From To Forms!Frm_Sales!txt_To
With rst
If .Supports(adAddNew) Then
.AddNew
!OrdNo= ID
!Comments_Sales_OrdNo= IIf(IsNull(Forms!Frm_Sales!txt_Comments_Sales_OrdNo), "0", Forms!Frm_Sales!txt_Comments_Sales_OrdNo)
!Project = IIf(IsNull(Forms!Frm_Sales!txt_Project), "0", Forms!Frm_Sales!txt_Project)
!Qty = IIf(IsNull(Forms!Frm_Sales!txt_Qty), "0", Forms!Frm_Sales!txt_Qty)
!Annex = IIf(IsNull(Forms!Frm_Sales!txt_Annex), "0", Forms!Frm_Sales!txt_Annex)
!Base_discount = IIf(IsNull(Forms!Frm_Sales!txt_Base_Discount), "0", Forms!Frm_Sales!txt_Base_Discount)
!Additional_Discount = IIf(IsNull(Forms!Frm_Sales!txt_Additional_Discount), "0", Forms!Frm_Sales!txt_Additional_Discount)
!List_price_per_unit_USD = IIf(IsNull(Forms!Frm_Sales!txt_List_Price_per_Unit_USD), "0", Forms!Frm_Sales!txt_List_Price_per_Unit_USD)
!Special_handling_costs_per_unit_USD = IIf(IsNull(Forms!Frm_Sales!txt_Special_Handling_Costs_per_Unit_USD), "0", Forms!Frm_Sales!txt_Special_Handling_Costs_per_Unit_USD)
!Estimated_freight_costs_per_unit_USD = IIf(IsNull(Forms!Frm_Sales!txt_Estimated_Freight_Costs_per_Unit_USD), "0", Forms!Frm_Sales!txt_Estimated_Freight_Costs_per_Unit_USD)
!Insurance_costs_per_unit_USD = IIf(IsNull(Forms!Frm_Sales!txt_Insurance_Costs_per_Unit_USD), "0", Forms!Frm_Sales!txt_Insurance_Costs_per_Unit_USD)
!Contracted_value_per_unit_USD = IIf(IsNull(Forms!Frm_Sales!txt_Contracted_Value_per_Unit_USD), "0", Forms!Frm_Sales!txt_Contracted_Value_per_Unit_USD)
!List_price_per_unit_EUR = IIf(IsNull(Forms!Frm_Sales!txt_List_Price_per_Unit_EUR), "0", Forms!Frm_Sales!txt_List_Price_per_Unit_EUR)
!Special_handling_costs_per_unit_EUR = IIf(IsNull(Forms!Frm_Sales!txt_Special_Handling_Costs_per_Unit_EUR), "0", Forms!Frm_Sales!txt_Special_Handling_Costs_per_Unit_EUR)
!Estimated_freight_costs_per_unit_EUR = IIf(IsNull(Forms!Frm_Sales!txt_Estimated_Freight_Costs_per_Unit_EUR), "0", Forms!Frm_Sales!txt_Estimated_Freight_Costs_per_Unit_EUR)
!Insurance_costs_per_unit_EUR = IIf(IsNull(Forms!Frm_Sales!txt_Insurance_Costs_per_Unit_EUR), "0", Forms!Frm_Sales!txt_Insurance_Costs_per_Unit_EUR)
!Contracted_value_per_unit_EUR = IIf(IsNull(Forms!Frm_Sales!txt_Contracted_Value_per_Unit_EUR), "0", Forms!Frm_Sales!txt_Contracted_Value_per_Unit_EUR)
.Update
End If
End With
Next ID
rst.Close
Set rst = Nothing
MsgBox ("Data were entered succesfully!")
Exit_Command10_Click:
Exit Sub
Err_Command10_Click:
MsgBox Err.Description
Resume Exit_Command10_Click
End Sub
Meine Frage ist nun, wie ich meine bereits eingegebenen Daten mit Hilfe der gleichen o. g. Textboxen ändern kann, da mein Makro ja nur Daten erfasst, für die noch keine Seriennummer existiert.
Wenn ich also in die Textbox txt_To die Seriennummer eingebe und dieses Feld anschließend verlasse, sollen in alle anderen Textboxen die dazugehörigen Daten erscheinen. Der Sinn dahinter ist, das meine Kollegen und ich auf einen Blick, die Eingaben sehen und auch hinterfragen können (von den Vorstellungen meines Chefs ganz zu schweigen).
Sollen dennoch Änderungen vorgenommen werden, so sollen die Eingaben wieder über die Textboxen laufen, d. h. die bisherigen Eingaben sollen überschrieben werden.
Vielleicht ist das alles ein bisschen viel auf einmal aber es gehört nun mal zusammmen.
Ich hoffe, dass mein Anliegen jetzt klarer beschrieben ist.
Danke für Deine Hilfe, Marie.
Gruss
Peter