首页 文章

使用ADO访问多个文本框中的Recordset

提问于
浏览
0

我试图用一个包含31天(从1月1日到1月31日)的单个记录集填充我的31个文本框 .

虽然我很清楚如何将查询的每个字段分配给相关的文本框,但是根本不清楚如何将查询的单个字段中包含的多个值分配给多个文本框 .

例如,这是我的起始代码:

私人子填充日期()

Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Set cnn = CurrentProject.Connection
Set rst = New ADODB.Recordset
ssql = "SELECT PricingDate From RoomCalendar WHERE PricingDate BETWEEN #01/01/2016# AND #31/01/2016# AND RateRoomCombinationId=17"
rst.Open ssql, cnn
Do Until rst.EOF = True

'txt1.Value = rst.Fields!PricingDate 
'txt2.Value = rst.Fields!PricingDate 
'txt3.Value = rst.Fields!PricingDate 

rst.MoveNext
Loop
End Sub

预先感谢您的帮助

2 回答

  • 0

    您可以使用:

    Dim cnn As ADODB.Connection
    Dim rst As ADODB.Recordset
    Dim Record As Integer
    Dim Records As Integer
    
    Set cnn = CurrentProject.Connection
    Set rst = New ADODB.Recordset
    ssql = "SELECT PricingDate From RoomCalendar WHERE PricingDate BETWEEN #2016/01/01# AND #2016/01/31# AND RateRoomCombinationId=17"
    
    rst.Open ssql, CNN
    rst.MoveLast
    rst.MoveFirst
    Records = rst.RecordCount
    For Record = 1 To Records
        Me("txt" & CStr(Record)).Value = rst.Fields!PricingDate.Value 
        rst.MoveNext
    Next
    End Sub
    

    请注意,日期表达式的格式 .

  • 0

    我设法自己解决了这个问题 . 最终代码是:

    Private Function FillDates()
    Dim cnn As ADODB.Connection
    Dim ssql As String
    Dim rst As ADODB.Recordset
    Set cnn = CurrentProject.Connection
    Dim i As Integer
    Dim Records As Integer
    ssql = "SELECT PricingDate From RoomCalendar WHERE PricingDate BETWEEN #2016/01/01# AND #2016/01/31# AND RateRoomCombinationId=17"
    Set rst = New ADODB.Recordset
    rst.CursorLocation = adUseClient
    rst.Open ssql, cnn
    Records = rst.RecordCount
    For i = 1 To Records
        Me("Text" & i).Value = rst.Fields!PricingDate.Value
        rst.MoveNext
    Next i
       '' Clean up
        rst.Close
        Set rst = Nothing
    End Function
    

    谢谢你的帮助

相关问题