将记录集值加载到Access窗体中



菜鸟在这里-我有一个表单("6_SubmissionGrid"(,其中包含一个列表框("lst_SelectSubm"(,我从中创建一个记录集("rs6"(。我希望启动第二个表单("6a_ContractQuote"(并从记录集中填充文本框,但在获取要显示的值时遇到了问题。我没有在第二个表单上设置任何参数或事件(除了在关闭时清除rs6(,并且在包含列表框的表单中有以下代码。记录集旨在只保存一个唯一的记录。

Dim Db As Database
Dim rs6 As Recordset
Dim SlctSubm As String
Dim strSQL As String
Dim PrincNo As String
Dim PrincName As String
Dim txt_PrincNo As String
Dim txt_PrincName As String
Public Sub btn_LaunchContrQuote_Click()
Set Db = CurrentDb
Set rs6 = Db.OpenRecordset("SELECT [5_SUBMISSION].[5_SubmNo], [5_SUBMISSION].[5_SubmStatus], [5_SUBMISSION].[5_DateRecd], [5_SUBMISSION].[3_PrincNo], [3_PRINCIPAL].[3_PrincName], [5_SUBMISSION].[2_AgcyNo], [2_AGENCY].[2_AgcyName], [5_SUBMISSION].[1_ProducerNo], [1_PRODUCER].[1_Last Name], [1_PRODUCER].[1_First Name], [5_SUBMISSION].[4_ObligeeNo], [4_OBLIGEE].[4_ObligName], [5_SUBMISSION].[5_ProjectDescription], [5_SUBMISSION].[5_ProjectCity], [5_SUBMISSION].[5_ProjectState], [5_SUBMISSION].[5_Underwriter], [5_SUBMISSION].[4_AddtlObligee1], [5_SUBMISSION].[4_AddtlObligee2], [5_SUBMISSION].[4_AddtlObligee3], [5_SUBMISSION].[4_AddtlObligee4] " & _
"FROM (((5_SUBMISSION INNER JOIN 2_AGENCY ON [5_SUBMISSION].[2_AgcyNo] = [2_AGENCY].[2_AgcyNo]) INNER JOIN 3_PRINCIPAL ON [5_SUBMISSION].[3_PrincNo] = [3_PRINCIPAL].[3_PrincNo]) INNER JOIN 4_OBLIGEE ON [5_SUBMISSION].[4_ObligeeNo] = [4_OBLIGEE].[4_ObligeeNo]) INNER JOIN 1_PRODUCER ON ([5_SUBMISSION].[1_ProducerNo] = [1_PRODUCER].[1_ProducerNo]) AND ([2_AGENCY].[2_AgcyNo] = [1_PRODUCER].[2_AgcyNo]) " & _
"GROUP BY [5_SUBMISSION].[5_SubmNo], [5_SUBMISSION].[5_SubmStatus], [5_SUBMISSION].[5_DateRecd], [5_SUBMISSION].[3_PrincNo], [3_PRINCIPAL].[3_PrincName], [5_SUBMISSION].[2_AgcyNo], [2_AGENCY].[2_AgcyName], [5_SUBMISSION].[1_ProducerNo], [1_PRODUCER].[1_Last Name], [1_PRODUCER].[1_First Name], [5_SUBMISSION].[4_ObligeeNo], [4_OBLIGEE].[4_ObligName], [5_SUBMISSION].[5_ProjectDescription], [5_SUBMISSION].[5_ProjectCity], [5_SUBMISSION].[5_ProjectState], [5_SUBMISSION].[5_Underwriter], [5_SUBMISSION].[4_AddtlObligee1], [5_SUBMISSION].[4_AddtlObligee2], [5_SUBMISSION].[4_AddtlObligee3], [5_SUBMISSION].[4_AddtlObligee4] " & _
"HAVING ((([5_SUBMISSION].[5_SubmNo])= '" & Me.lst_SelectSubm & "'));")

rs6.MoveLast
PrincNo = rs6.Fields(3).Value
PrincName = rs6.Fields(4).Value
DoCmd.OpenForm "6a_ContractQuote", acNormal, , [txt_PrincNo] = PrincNo And [txt_PrincName] = PrincName

End Sub

感谢任何建议。我在OpenForm命令的Where Condition上尝试了各种配置,但没有成功。非常感谢。

您可以在打开表单后对其进行寻址:

Dim ContractQoute As Form
'...
PrincNo = rs6.Fields(3).Value
PrincName = rs6.Fields(4).Value
DoCmd.OpenForm "6a_ContractQuote", acNormal
Set ContractQoute = Forms("6a_ContractQuote")
ContractQoute![txt_PrincNo].Value = PrincNo
ContractQoute![txt_PrincName].Value = PrincName
Set ContractQoute = Nothing