【发布时间】:2021-10-21 04:38:20
【问题描述】:
填充记录源后,下一个操作是单击填充的字段之一以“激活”记录。单击此按钮时,目标是将 SEC_ID(A GUID,数字数据类型)存储为 tempvar 并在以后的查询中使用。此 GUID 也放置在文本框中,仅用于可视化调试。但是它没有放 GUID,它放的是随机的汉字。我试图将它放入 MsgBox 中只是为了也能看到它会吐出“???????”。
我填充行源的代码:
Dim componentListSQL As String
If FCSUtilities.AssessmentUoM = "Metric" Then
componentListSQL = "SELECT DISTINCT [100b_Working].SEC_SYS_COMP_ID, [100b_Working].SEC_ID, [110b_RO_Material_Category].MAT_CAT_DESC, [110b_RO_Component_Type].COMP_TYPE_DESC, [110b_RO_Material_Category].MAT_CAT_ID, [110b_RO_Component_Type].COMP_TYPE_ID, [100b_Working].ID_Number, [100b_Working].Model, [100b_Working].Serial_Number, [100b_Working].Capacity, [100b_Working].Manufacturer, [100b_Working].SEC_YEAR_BUILT, ROUND([100b_Working].SEC_QTY, 0) AS SEC_QTY, [100b_Working].UOM_MET_UNIT_ABBR, [100b_Working].UOM_ENG_UNIT_ABBR, [100b_Working].Equipment_Make, [100b_Working].UOM_CONV " _
& "FROM (110b_RO_Units_Conversion INNER JOIN (110b_RO_Component_Type INNER JOIN (110b_RO_Material_Category INNER JOIN 110b_RO_CMC ON [110b_RO_Material_Category].MAT_CAT_ID = [110b_RO_CMC].CMC_MCAT_LINK) ON [110b_RO_Component_Type].COMP_TYPE_ID = [110b_RO_CMC].CMC_CTYPE_LINK) ON [110b_RO_Units_Conversion].UOM_ID = [110b_RO_CMC].CMC_UoM) INNER JOIN 100b_Working ON [110b_RO_CMC].CMC_ID = [100b_Working].SEC_CMC_LINK " _
& "WHERE ((([100b_Working].SEC_SYS_COMP_ID) = [Forms]![200a_MainWindow]![txtDebugCompSysID]) And (([100b_Working].SEC_ID) Is Not Null)) " _
& "ORDER BY [110b_RO_Component_Type].COMP_TYPE_DESC;"
Me![210_ComponentList].Form.RecordSource = componentListSQL
End If
OnClick 事件:
Private Sub txtMaterialCategory_Click()
Me.txtActiveSecID.Value = Me.txtSecID.Value
End Sub
txtSecID 应该显示为 GUID,但它在 txtActiveSecID 中成为中文字符,即使我尝试将其作为 tempvar 然后将其设置为 txtActiveSecID。
我不确定发生了什么。查看不同的堆栈,它指出这是由于 long/memo 字段,但正如我之前所说,SEC_ID 字段数据类型是 Number。
【问题讨论】:
-
尝试在数据库上运行 Compact & Repair。
-
刚刚试了,没修好。
-
然后新建一个数据库并导入所有对象。如果这没有帮助,请重新创建表(或至少 GUID 字段)。
-
您的代码不是填充 RecordSource,而不是 RowSource 吗? GUID 字段是否为 ReplicationID 设置了自动编号?
-
我遇到了同样的问题。但是,当我将带有 GUID 字段的列表框设置为列,然后引用该列时,代码会返回 GUID。