Forms 在VBA中更改后加载空白的表单详细信息部分
我最近在表单的VBA中做了一些更改,现在表单视图中表单的详细信息部分加载为空白。我可以看到标题,底部列出了记录的数量,但是详细信息部分现在加载为空。我的假设是VBA代码导致了这种情况,因为我没有更改任何表单设置 在向窗体的某个区域添加一些新函数时,我做了一些故障排除。一切都很顺利。然后,我复制了我使用的代码,并对其进行了修改,以便对表单的不同部分执行相同的操作。对于上下文,此表单只是一个审阅页面,它将多个表中的数据拉入摘要页面。这以前不是问题,我用备份确认所有设置都是相同的,备份没有此问题。备份和当前表单的唯一区别是添加了控件和命令按钮,以及一些VBA。但是备份加载正确,而我的新文件却没有。我已经复制了下面的VBA,以防由于问题而出现一些突出的问题。我确实在FormLoad和Current部分中添加了VBA,但这只是已经存在的代码的重复。我复制了参考软件和软件的代码,即硬件和硬件。我不知道为什么这会引起问题。所有的代码引用软件都经过了测试,工作令人满意,所以我将其全部复制到了硬件上。问题就在这里的某个地方。我已经复制了整个表单的所有VBA。很抱歉这么长,但我认为这可能是有用的。您可能会注意到草率的工作或低效的代码使用,因为我对这一点还不熟悉,但希望它有意义。如果我能澄清任何事情或解释我试图用一个特定函数实现什么,请不要犹豫 我非常感谢任何帮助Forms 在VBA中更改后加载空白的表单详细信息部分,forms,ms-access,vba,ms-access-2013,Forms,Ms Access,Vba,Ms Access 2013,我最近在表单的VBA中做了一些更改,现在表单视图中表单的详细信息部分加载为空白。我可以看到标题,底部列出了记录的数量,但是详细信息部分现在加载为空。我的假设是VBA代码导致了这种情况,因为我没有更改任何表单设置 在向窗体的某个区域添加一些新函数时,我做了一些故障排除。一切都很顺利。然后,我复制了我使用的代码,并对其进行了修改,以便对表单的不同部分执行相同的操作。对于上下文,此表单只是一个审阅页面,它将多个表中的数据拉入摘要页面。这以前不是问题,我用备份确认所有设置都是相同的,备份没有此问题。备份
Option Compare Database
Private Sub cmdAddSWRev_Click()
Me.lstSWRevAdd.Visible = True
Me.lstSWRevDateAdd.Visible = True
Me.lstSWRevNotesAdd.Visible = True
Me.lblSwRevAdd.Visible = True
Me.lblSWRevDateAdd.Visible = True
Me.lblSWRevNotesAdd.Visible = True
Me.lstSWRev.Visible = False
Me.lstSWRevDate.Visible = False
Me.lstSWRevNotes.Visible = False
Me.lblSWRev.Visible = False
Me.lblSWRevDate.Visible = False
Me.lblSWRevNotes.Visible = False
Me.cmdSaveSWRev.Visible = True
End Sub
Private Sub cmdHWRevAdd_Click()
Me.lstHWRevAdd.Visible = True
Me.lstHWRevDateAdd.Visible = True
Me.lstHWRevNotesAdd.Visible = True
Me.lblHWRevAdd.Visible = True
Me.lblHWRevDateAdd.Visible = True
Me.lblHWRevNotesAdd.Visible = True
Me.lstHWRev.Visible = False
Me.lstHWRevDate.Visible = False
Me.lstHWRevNotes.Visible = False
Me.lblHWRev.Visible = False
Me.lblHWRevDate.Visible = False
Me.lblHWRevNotes.Visible = False
Me.cmdSaveHWRev.Visible = True
End Sub
Private Sub cmdSaveSWRev_Click()
'Create an entry in Software Revisions
Dim SerialNumberDatabase As DAO.Database
Dim tblSoftwareRevisions As DAO.Recordset
Set SerialNumberDatabase = CurrentDb
Set tblSoftwareRevisions = SerialNumberDatabase.OpenRecordset("tblSoftwareRevisions")
tblSoftwareRevisions.AddNew
tblSoftwareRevisions("SoftwareRevision").Value = Me.lstSWRevAdd
tblSoftwareRevisions("Assembly").Value = Me.PartNumber_tblUnits
tblSoftwareRevisions("SWRevDate").Value = Me.lstSWRevDateAdd
tblSoftwareRevisions("Notes").Value = Me.lstSWRevNotesAdd
tblSoftwareRevisions.Update
tblSoftwareRevisions.Close
'Add the new Software Revision ID to the existing unit in tblUnits by editing the Null SoftwareID field
Dim tblUnits As DAO.Recordset
Set tblUnits = SerialNumberDatabase.OpenRecordset("tblUnits")
tblUnits.MoveFirst
Do Until tblUnits.EOF
If tblUnits!SerialNumber = Me.lstSerialNumber And tblUnits!PartNumber = Me.lstPartNumber Then
tblUnits.Edit
tblUnits!SoftwareID = DMax("SWRevID", "tblSoftwareRevisions")
tblUnits.Update
End If
tblUnits.MoveNext
Loop
MsgBox ("The Software Revision has been added for this unit")
End Sub
Private Sub cmdSaveHWRev_Click()
'Create an entry in Software Revisions
Dim SerialNumberDatabase As DAO.Database
Dim tblHardwareRevisions As DAO.Recordset
Set SerialNumberDatabase = CurrentDb
Set tblHardwareRevisions = SerialNumberDatabase.OpenRecordset("tblHardwareRevisions")
tblHardwareRevisions.AddNew
tblHardwareRevisions("HardwareRevision").Value = Me.lstHWRevAdd
tblHardwareRevisions("Assembly").Value = Me.PartNumber_tblUnits
tblHardwareRevisions("HWRevDate").Value = Me.lstHWRevDateAdd
tblHardwareRevisions("Notes").Value = Me.lstHWRevNotesAdd
tblHardwareRevisions.Update
tblHardwareRevisions.Close
'Add the new Software Revision ID to the existing unit in tblUnits by editing the Null SoftwareID field
Dim tblUnits As DAO.Recordset
Set tblUnits = SerialNumberDatabase.OpenRecordset("tblUnits")
tblUnits.MoveFirst
Do Until tblUnits.EOF
If tblUnits!SerialNumber = Me.lstSerialNumber And tblUnits!PartNumber = Me.lstPartNumber Then
tblUnits.Edit
tblUnits!HardwareID = DMax("HWRevID", "tblHardwareRevisions")
tblUnits.Update
End If
tblUnits.MoveNext
Loop
tblUnits.Close
MsgBox ("The Hardware Revision has been added for this unit")
End Sub
Private Sub cmdSearch_Click()
DoCmd.ShowAllRecords
DoCmd.RunCommand acCmdFind
End Sub
Private Sub Form_Current()
Me.lstUnitBuiltDate.Requery
If Me.txtSerialCount.Value > 1 Then
Me.tblReportedIssues_subform_Label.Visible = True
Me.tblReportedIssues_subform.Visible = True
Else
Me.tblReportedIssues_subform_Label.Visible = False
Me.tblReportedIssues_subform.Visible = False
End If
If Me.txtRMACount.Value > 1 Then
Me.tblReportedIssues_subform1_Label.Visible = True
Me.tblReportedIssues_subform1.Visible = True
Else
Me.tblReportedIssues_subform1_Label.Visible = False
Me.tblReportedIssues_subform1.Visible = False
End If
If Me.lstSerialNumber.Value < 1 Then
Me.txtSerialNote.Visible = True
Else
Me.txtSerialNote.Visible = False
End If
Me.lstSWRevAdd.Visible = False
Me.lstSWRevDateAdd.Visible = False
Me.lstSWRevNotesAdd.Visible = False
Me.lblSwRevAdd.Visible = False
Me.lblSWRevDateAdd.Visible = False
Me.lblSWRevNotesAdd.Visible = False
Me.cmdSaveSWRev.Visible = False
Me.lstSWRev.Visible = True
Me.lstSWRevDate.Visible = True
Me.lstSWRevNotes.Visible = True
Me.lblSWRev.Visible = True
Me.lblSWRevDate.Visible = True
Me.lblSWRevNotes.Visible = True
Me.lstHWRevAdd.Visible = False
Me.lstHWRevDateAdd.Visible = False
Me.lstHWRevNotesAdd.Visible = False
Me.lblHWRevAdd.Visible = False
Me.lblHWRevDateAdd.Visible = False
Me.lblHWRevNotesAdd.Visible = False
Me.cmdSaveHWRev.Visible = False
Me.lstHWRev.Visible = True
Me.lstHWRevDate.Visible = True
Me.lstHWRevNotes.Visible = True
Me.lblHWRev.Visible = True
Me.lblHWRevDate.Visible = True
Me.lblHWRevNotes.Visible = True
End Sub
Private Sub Form_Load()
Me.lstSWRevAdd.Visible = False
Me.lstSWRevDateAdd.Visible = False
Me.lstSWRevNotesAdd.Visible = False
Me.lblSwRevAdd.Visible = False
Me.lblSWRevDateAdd.Visible = False
Me.lblSWRevNotesAdd.Visible = False
Me.cmdSaveSWRev.Visible = False
Me.lstSWRev.Visible = True
Me.lstSWRevDate.Visible = True
Me.lstSWRevNotes.Visible = True
Me.lblSWRev.Visible = True
Me.lblSWRevDate.Visible = True
Me.lblSWRevNotes.Visible = True
Me.lstHWRevAdd.Visible = False
Me.lstHWRevDateAdd.Visible = False
Me.lstHWRevNotesAdd.Visible = False
Me.lblHWRevAdd.Visible = False
Me.lblHWRevDateAdd.Visible = False
Me.lblHWRevNotesAdd.Visible = False
Me.cmdSaveHWRev.Visible = False
Me.lstHWRev.Visible = True
Me.lstHWRevDate.Visible = True
Me.lstHWRevNotes.Visible = True
Me.lblHWRev.Visible = True
Me.lblHWRevDate.Visible = True
Me.lblHWRevNotes.Visible = True
Me.lstUnitBuiltDate.Requery
End Sub
Private Sub lstRMA_Click()
MsgBox "This cannot be Edited or Altered", vbCritical, "Field Locked"
End Sub
Private Sub tblReportedIssues_subform_Enter()
MsgBox "This cannot be Edited or Altered. If you would like to review a listed RMA, please use the Search or Navigation buttons to locate it.", vbCritical, "Field Locked"
End Sub
如果重要的话,表单有一个SELECT tblReportedIssues.*的记录源,tblUnits.Notes,tblUnits.SerialNumber作为SerialNumber\u tblUnits,tblUnits.PartNumber作为PartNumber\u tblUnits内部联接tblRMA内部联接tblreportedisues ON tblRMA.RMANumber=tblreportedisues.RMA ON tblUnits.PartNumber=tblreportedisues.PartNumber和tblUnits.SerialNumber=tblreportedisues.SerialNumber
设置如下:
记录集:Dynaset
获取默认值:是
过滤器:空白
带载过滤器:否
订货人:空白
装船订单:无
等待后处理:否
数据输入:否
允许添加:否
允许删除:否
允许编辑:是
允许筛选器:是
记录锁:无锁
这些设置和记录源代码在我的备份文件中起作用,因为它们允许正确加载所有内容 我是个白痴。经过大量调查,似乎我在设计模式下意外选择了详图栏,并在试图隐藏其他控件时将其可见性更改为“否”