内容补充:
项目名称的字段是用公式引用来的;请高手指教,那部分没有显示的数据丢失,需要重新再次输入,谢谢!
整个代码如下:
Option Compare Database
Private Sub Form_Load()
On Error GoTo ErrorHandler
Dim strSQL As String
Dim rst As Object 'ADODB.Recordset
Me![运输令流水号].Enabled = False
If Nz(Me.OpenArgs) <> "" Then
strSQL = "SELECT * FROM [表14运输计划] WHERE " & Me.OpenArgs
Set rst = OpenADORecordset(strSQL, , CurrentProject.Connection)
Me![运输日期] = rst![运输日期]
Me![承运商] = rst![承运商]
Me![运输令流水号] = rst![运输令流水号]
Me![代办其它业务] = rst![代办其它业务]
Me![项目编号] = rst![项目编号]
Me![项目名称] = rst![项目名称]
Me![发货城市] = rst![发货城市]
Me![目的地城市] = rst![目的地城市]
Me![产品名称] = rst![产品名称]
Me![产品重量] = rst![产品重量]
Me![车型] = rst![车型]
Me![到车时间] = rst![到车时间]
Me![车辆(台)] = rst![车辆(台)]
Me![到货日期] = rst![到货日期]
Me![备注] = rst![备注]
rst.Close
End If
ExitHere:
Set rst = Nothing
Exit Sub
ErrorHandler:
MsgBoxEx Err.Description, vbCritical
Resume ExitHere
End Sub
Private Sub btnSave_Click()
On Error GoTo ErrorHandler
Dim strSQL As String
Dim rst As Object 'ADODB.Recordset
If Not CheckRequired(Me) Then Exit Sub
If Not CheckTextLength(Me) Then Exit Sub
strSQL = "SELECT * FROM [表14运输计划] WHERE [运输令流水号]=" & SQLText(Me![运输令流水号])
Set rst = OpenADORecordset(strSQL, adLockOptimistic, CurrentProject.Connection)
If rst.EOF Then
rst.AddNew
Me![运输令流水号] = GetAutoNumber("运输令流水号")
rst![运输令流水号] = Me![运输令流水号]
End If
rst![运输日期] = Me![运输日期]
rst![承运商] = Me![承运商]
rst![代办其它业务] = Me![代办其它业务]
rst![项目编号] = Me![项目编号]
rst![项目名称] = Me![项目名称]
rst![发货城市] = Me![发货城市]
rst![目的地城市] = Me![目的地城市]
rst![产品名称] = Me![产品名称]
rst![产品重量] = Me![产品重量]
rst![车型] = Me![车型]
rst![到车时间] = Me![到车时间]
rst![车辆(台)] = Me![车辆(台)]
rst![到货日期] = Me![到货日期]
rst![备注] = Me![备注]
rst.Update
rst.Close
MsgBoxEx "保存成功!", vbInformation
If IsNull(Me.OpenArgs) Then
ClearControlValues Me
Else
DoCmd.Close acForm, Me.Name, acSaveNo
End If
ExitHere:
Set rst = Nothing
Exit Sub
ErrorHandler:
MsgBoxEx Err.Description, vbCritical
Resume ExitHere
End Sub
Private Sub btnCancel_Click()
On Error Resume Next
DoCmd.Close acForm, Me.Name, acSaveNo
End Sub