这个VB代码突然破了。这是对的吗?

时间:2014-11-18 17:23:41

标签: mysql ms-access

我在Microsoft Access中的链接表突然开始返回值为#DELETED的每个字段。我决定改为导入表,只是安排一个任务来定期执行,而不是处理查询在旧链接表运行时导致的密钥违规(奇怪的是,重新链接表会暂时修复其中的一些。导入似乎把它固定好。)

但是,代码仍然存在。奇怪的是,这个VB代码现在返回一个错误。它很简短,但如下:

Private Sub Form_Open(Cancel As Integer)

If IsLoaded("consumer_info") Then
 Me.Text0.Value = Forms!Consumer_Info.contract_name
Else
 Me.Text0.Value = Forms!frmAllentownMasterGeneration.cboContract
End If
End Sub

在SQL查询中,这里引用的信息相同:

WHERE (((billing_days_allentown.Month)=[Forms]![frmBillingAllentownSelection]![cboMonth]) AND ((billing_days_allentown.Year)=[Forms]![frmBillingAllentownSelection]![cboYear]) AND ((billing_days_allentown.contract_name)=[Forms]![frmBillingAllentownSelection]![cboContract]) AND ((location_info.primary_address)="-1"));

有什么明显的东西似乎打破了我的代码吗?我很感激任何帮助!

1 个答案:

答案 0 :(得分:0)

引用字段名称时,您可能需要一个爆炸(!)而不是一个pop(。)。如:

 Me.Text0.Value = Forms!Consumer_Info!contract_name

而不是

Me.Text0.Value = Forms!Consumer_Info.contract_name

或者您甚至可能需要拼写出来:

Me.Text0.Value = Forms!Consumer_Info!contract_name.Value

一个好的经验法则是; 如果你创建了它,那就打发它。这就解释了为什么你的表单和字段名称(用你创建的单词命名,比如" Consumer_Info")需要先发出爆炸声,然后像" text"和"价值" (这是语言固有的)前面有一个pop。