Private Sub Form_Load()
'锁子窗体
Me.订单明细子窗体.Locked = True
End Sub
Private Sub 保存_Click()
'这个怎么做?
'关键是子记录数可能变动,可能大于原记录数,也可能小于原记录数。
End Sub
Private Sub 查询_Click()
If IsNull(Me.订单号) Then
MsgBox "请输入查询订单号", vbOKOnly
Exit Sub
End If
Dim sql0 As String, sql1 As String
Dim rs0 As New ADODB.Recordset
Dim rs1 As New ADODB.Recordset
sql0 = "select * from 订单 where 订单号='" & Me.订单号 & "'"
sql1 = "select * from 订单明细 where 订单号='" & Me.订单号 & "'"
With rs0
.CursorLocation = adUseClient
.Open sql0, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
.ActiveConnection = Nothing
End With
Me.客户名称 = rs0.Fields("客户名称")
With rs1
.CursorLocation = adUseClient
.Open sql1, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
.ActiveConnection = Nothing
End With
Set Me.订单明细子窗体.Form.Recordset = rs1
Dim ctl As Control
For Each ctl In Me.订单明细子窗体.Controls
If ctl.ControlType = acTextBox Then
ctl.ControlSource = ctl.Name
End If
Next
rs0.Close
rs1.Close
Set rs0 = Nothing
Set rs1 = Nothing
End Sub
Private Sub 修改_Click()
Me.订单明细子窗体.Locked = False
'可修改状态
End Sub作者: 你是坏蛋 时间: 2013-1-26 13:19
我做的保存代码。
可以用,但是,总想找个更好的办法。
拿来给大家探讨一下。
Private Sub 保存_Click()
'这个怎么做?
'关键是子记录数可能变动,可能大于原记录数,也可能小于原记录数。
Dim rs As New ADODB.Recordset
Dim rst As New ADODB.Recordset
Dim rsc As New ADODB.Command
'delete old
rsc.ActiveConnection = CurrentProject.Connection
rsc.CommandType = adCmdText
rsc.CommandText = "delete from 订单明细 where 订单号='" & Me.订单号 & "'"
rsc.Execute
'addnew
Set rs = Me.订单明细子窗体.Form.RecordsetClone
rst.Open "select * from 订单明细", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
Do While Not rs.EOF
With rst
.AddNew
!订单号 = Me.订单号
!产品名称 = rs.Fields("产品名称")
!产品数量 = rs.Fields("产品数量")
.Update
End With
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
rst.Close
Set rst = Nothing
Set rsc = Nothing
MsgBox "保存成功"
End Sub作者: LeeTien 时间: 2013-1-27 02:34
数据表子窗体数据保存对于access来说是个世界难题
有人用临时表处理、有人用链接表处理
要是想通过代码完成相当有难度