王萌萌 发表于:2016-02-15 10:47:32
请问如何在平台中设计多个子窗体,论坛中有没有类似的例子。
对的。我知道新加一个子窗体需要写代码,但是没有案例,我不知道该怎么写,所以想看看是否有案例可以参考,同时我是按照论坛上的《铝件车间管理》里的一个写的,但是里面的子窗体有些不同,所以代码也不对。
用选项卡做,想学找我吧。打字你也理解不了
选项卡也不错,怎么找你学呢。
Private Sub Form_Load()
On Error GoTo ErrorHandler
Dim strSQL As String
Dim cnn As Object 'ADODB.Connection
Dim rst As Object 'ADODB.Recordset
Dim rstTmp As Object 'DAO.Recordset
ApplyTheme Me
LoadLocalLanguage Me
CurrentDb.Execute "DELETE FROM [TMP_TBL_SRF_YangBanXuQiu]"
CurrentDb.Execute "DELETE FROM [TMP_TBL_SRF_WenJianBianHao_MingXi]"
Me.sfrDetail.Requery
Me.sfrDetail_01.Requery
If IsNull(Me.OpenArgs) Then
Me.DataEntry = True
End If
If Me.DataEntry Then
GoTo ExitHere
End If
Me.btnSave.Enabled = Me.AllowEdits
Set cnn = CurrentProject.Connection
strSQL = "SELECT * FROM [TBL_SRF] WHERE [SRF_ID]=" & SQLText(Me.OpenArgs)
Set rst = OpenADORecordset(strSQL, , cnn)
Me![SRF_ID] = rst![SRF_ID]
Me![JinDuZhuangTai] = rst![JinDuZhuangTai]
Me![KeHuLeiBie] = rst![KeHuLeiBie]
Me![Ver] = rst![Ver]
Me![Project] = rst![Project]
Me![Requestor] = rst![Requestor]
Me![RiQi] = rst![RiQi]
Me![Model] = rst![Model]
Me![PartNo] = rst![PartNo]
Me![Description] = rst![Description]
Me![SampleType] = rst![SampleType]
Me![Market] = rst![Market]
Me![ShenHeZhuangTai] = rst![ShenHeZhuangTai]
Me![XiuDingRen] = rst![XiuDingRen]
Me![XiuDingRiQi] = rst![XiuDingRiQi]
rst.Close
strSQL = "SELECT * FROM [TBL_SRF_YangBanXuQiu] WHERE [SRF_ID]=" & SQLText(Me![SRF_ID])
Set rst = OpenADORecordset(strSQL, , cnn)
Set rstTmp = CurrentDb.OpenRecordset("TMP_TBL_SRF_YangBanXuQiu")
Do Until rstTmp.EOF
rstTmp.Delete
rstTmp.MoveNext
Loop
Do Until rst.EOF
rstTmp.AddNew
rstTmp![ID] = rst![ID]
rstTmp![SRF_ID] = rst![SRF_ID]
rstTmp![JinDuZhuangTai] = rst![JinDuZhuangTai]
rstTmp![Model] = rst![Model]
rstTmp![GuiGe] = rst![GuiGe]
rstTmp![YangBanLeiBie] = rst![YangBanLeiBie]
rstTmp![QTY] = rst![QTY]
rstTmp![DanWei] = rst![DanWei]
rstTmp![XingMing] = rst![XingMing]
rstTmp![BeiZhu] = rst![BeiZhu]
rstTmp![ShenHeZhuangTai] = rst![ShenHeZhuangTai]
rstTmp![XiuDingRen] = rst![XiuDingRen]
rstTmp![XiuDingRiQi] = rst![XiuDingRiQi]
rstTmp.Update
rst.MoveNext
Loop
rst.Close
rstTmp.Close
strSQL = "SELECT * FROM [TBL_SRF_WenJianBianHao_MingXi] WHERE [SRF_ID]=" & SQLText(Me![SRF_ID])
Set rst = OpenADORecordset(strSQL, , cnn)
Set rstTmp = CurrentDb.OpenRecordset("TMP_TBL_SRF_WenJianBianHao_MingXi")
Do Until rstTmp.EOF
rstTmp.Delete
rstTmp.MoveNext
Loop
Do Until rst.EOF
rstTmp.AddNew
rstTmp![ID] = rst![ID]
rstTmp![SRF_ID] = rst![SRF_ID]
rstTmp![WenJianBianHao] = rst![WenJianBianHao]
rstTmp![BeiZhu] = rst![BeiZhu]
rstTmp![ShenHeZhuangTai] = rst![ShenHeZhuangTai]
rstTmp![XiuDingRen] = rst![XiuDingRen]
rstTmp![XiuDingRiQi] = rst![XiuDingRiQi]
rstTmp.Update
rst.MoveNext
Loop
rst.Close
rstTmp.Close
'通过这一行代码的调用实现附件的加载
Call Me.sfrAttachments.Form.LoadAttachmentData("附件", Me!SRF_ID, cnn)
Me.sfrDetail.Requery
Me.sfrDetail_01.Requery
ExitHere:
Set rst = Nothing
Set cnn = Nothing
Set rstTmp = Nothing
Exit Sub
ErrorHandler:
RDPErrorHandler Me.Name & ": Sub Form_Load()"
Resume ExitHere
End Sub
Private Sub btnSave_Click()
On Error GoTo ErrorHandler
Dim strWhere As String
Dim strSQL As String
Dim cnn As Object 'ADODB.Connection
Dim rst As Object 'ADODB.Recordset
Dim rstTmp As Object 'DAO.Recordset
Dim blnTransBegin As Boolean
If Not CheckRequired(Me) Then Exit Sub
If Not CheckTextLength(Me) Then Exit Sub
If Not CheckRequired(Me.sfrDetail) Then Exit Sub
If Not CheckRequired(Me.sfrDetail_01) Then Exit Sub
'判断审核状态
If DLookup("ShenHeZhuangTai", "TBL_SRF", "SRF_ID='" & Me![SRF_ID] & "'") = "已审核" Then
MsgBox "已审核,禁止编辑!", vbCritical, "警告"
Exit Sub
End If
Set cnn = CurrentProject.Connection
cnn.BeginTrans: blnTransBegin = True
strSQL = "SELECT * FROM [TBL_SRF] WHERE [SRF_ID]=" & SQLText(Me![SRF_ID])
Set rst = OpenADORecordset(strSQL, adLockOptimistic, cnn)
If rst.EOF Then
rst.AddNew
rst![SRF_ID] = GetAutoNumber("SRF_ID")
End If
rst![JinDuZhuangTai] = Me![JinDuZhuangTai]
rst![KeHuLeiBie] = Me![KeHuLeiBie]
rst![Ver] = Me![Ver]
rst![Project] = Me![Project]
rst![Requestor] = Me![Requestor]
rst![RiQi] = Me![RiQi]
rst![Model] = Me![Model]
rst![PartNo] = Me![PartNo]
rst![Description] = Me![Description]
rst![SampleType] = Me![SampleType]
rst![Market] = Me![Market]
rst![ShenHeZhuangTai] = Me![ShenHeZhuangTai]
rst![XiuDingRen] = Forms!sysfrmMain!Nickname
rst![XiuDingRiQi] = Now()
rst.Update
Me![SRF_ID] = rst![SRF_ID]
rst.Close
strSQL = "SELECT * FROM [TBL_SRF_YangBanXuQiu] WHERE [SRF_ID]=" & SQLText(Me![SRF_ID])
Set rst = OpenADORecordset(strSQL, adLockOptimistic, cnn)
Do Until rst.EOF
rst.Delete
rst.MoveNext
Loop
Set rstTmp = CurrentDb.OpenRecordset("TMP_TBL_SRF_YangBanXuQiu")
Do Until rstTmp.EOF
rst.AddNew
rst![SRF_ID] = Me![SRF_ID]
rst![JinDuZhuangTai] = rstTmp![JinDuZhuangTai]
rst![Model] = rstTmp![Model]
rst![GuiGe] = rstTmp![GuiGe]
rst![YangBanLeiBie] = rstTmp![YangBanLeiBie]
rst![QTY] = rstTmp![QTY]
rst![DanWei] = rstTmp![DanWei]
rst![XingMing] = rstTmp![XingMing]
rst![BeiZhu] = rstTmp![BeiZhu]
rst![ShenHeZhuangTai] = rstTmp![ShenHeZhuangTai]
rst![XiuDingRen] = Forms!sysfrmMain!Nickname
rst![XiuDingRiQi] = Now()
rst.Update
rstTmp.MoveNext
Loop
rst.Close
rstTmp.Close
strSQL = "SELECT * FROM [TBL_SRF_WenJianBianHao_MingXi] WHERE [SRF_ID]=" & SQLText(Me![SRF_ID])
Set rst = OpenADORecordset(strSQL, adLockOptimistic, cnn)
Do Until rst.EOF
rst.Delete
rst.MoveNext
Loop
Set rstTmp = CurrentDb.OpenRecordset("TMP_TBL_SRF_WenJianBianHao_MingXi")
Do Until rstTmp.EOF
rst.AddNew
rst![SRF_ID] = Me![SRF_ID]
rst![WenJianBianHao] = rstTmp![WenJianBianHao]
rst![BeiZhu] = rstTmp![BeiZhu]
rst![ShenHeZhuangTai] = rstTmp![ShenHeZhuangTai]
rst![XiuDingRen] = Forms!sysfrmMain!Nickname
rst![XiuDingRiQi] = Now()
rst.Update
rstTmp.MoveNext
Loop
rst.Close
rstTmp.Close
cnn.CommitTrans: blnTransBegin = False
'通过这一行代码的调用实现附件的保存
Call Me.sfrAttachments.Form.SaveAttachmentData("附件", Me!SRF_ID, cnn)
Form_frm_SRF.RefreshDataList
MsgBoxEx LoadString("Saved Successfully."), vbInformation
' If Me.DataEntry Then
' ClearControlValues Me
' CurrentDb.Execute "DELETE FROM [TMP_TBL_SRF_YangBanXuQiu]"
' Me.sfrDetail.Requery
' Else
DoCmd.Close acForm, Me.Name, acSaveNo
' End If
ExitHere:
Set rst = Nothing
Set cnn = Nothing
Set rstTmp = Nothing
Exit Sub
ErrorHandler:
If blnTransBegin Then
cnn.RollbackTrans
blnTransBegin = False
End If
RDPErrorHandler Me.Name & ": Sub btnSave_Click()"
Resume ExitHere
End Sub
多个窗体改为选项卡时,只需要将相应的子窗体移动到选项卡上,代码不需要更改。
总记录:8篇 页次:1/1 9 1 :