数据集重新调整 0 条记录,但在 access 2013 中执行时,相同的查询返回多条记录

Posted

技术标签:

【中文标题】数据集重新调整 0 条记录,但在 access 2013 中执行时,相同的查询返回多条记录【英文标题】:Dataset Retuns 0 records but same query returns multiple records when executed in access 2013 【发布时间】:2015-01-08 10:39:35 【问题描述】:

我将后端用作 MS Access 2013,当我执行函数时,它在消息框中返回 0,但我在 access 2013 中以 sql 模式执行相同的查询,它返回多行。问题是此函数返回 0 的原因数据集表中的行。它应该返回一些行

表格

账单(bill_id,m_id,dated,ownername,oldvalue,newvalue,units,oth,rcharges,billamount)

米(m_id,m_type,ownername,flatno,designation,qualification,department)

Private Sub frmViewStatementReport_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim Billrpt As New RptBillStatement
        Billrpt.Load(Application.StartupPath & "\RptBillStatement.rpt")
        Try
            Dim qry As String
            ' I have Tried the above both queries but returns 0 rows in table(0).

            qry = "SELECT bills.ownername as Name, meters.designation as des,   meters.department as depart, bills.billAmount as amount FROM bills LEFT JOIN meters ON meters.m_id =bills.m_id  WHERE bills.dated like '*-jan-*'"

            'qry = "SELECT bt.bill_id,bt.ownername as Name, mt.designation as designation, mt.department as department,bt.billAmount as billAmount FROM bills AS bt INNER JOIN meters AS mt ON bt.m_id = mt.m_id WHERE bt.dated like '*-jan-*'"          

            Using conn = New OleDbConnection(ConString)
                Using daa As OleDbDataAdapter = New OleDbDataAdapter(qry, conn)
                    Using dss As DataSet = New DataSet
                        conn.Open()
                        daa.Fill(dss, "Bills")  
                         Dim dt As New DataTable
                        dt = ds.Tables(0)
                        Billrpt.SetDataSource(ds.Tables(0))
                        Me.CrystalReportViewer1.Refresh()
                        Me.CrystalReportViewer1.ReportSource =Billrpt 

                        MsgBox(dss.Tables(0).Rows.Count.ToString)
                        conn.Close()
                    End Using
                End Using
            End Using
        Catch ex As Exception            
            MsgBox(ex.ToString)                 
        End Try
 End Sub

【问题讨论】:

通配符几乎总是在 MS Access 之外。它仅 % 在 MS Access 查询 (DAO) 中运行 感谢 Fionnuala 为我的问题提供解决方案。 Different result from same query executed by my application and by Access 2007 query wizard的可能重复 当然我的意思是它只是 * 在 MS Access 查询 (DAO) 中运行 【参考方案1】:

通配符实际上是带有 Like 子句的 '%%' 而不是 '**'

WHERE bills.dated like '%-jan-%'"

应该可以解决你的问题。

【讨论】:

以上是关于数据集重新调整 0 条记录,但在 access 2013 中执行时,相同的查询返回多条记录的主要内容,如果未能解决你的问题,请参考以下文章

为啥在 Access 中返回 835 条记录的查询会在 VBA 代码中返回一个空记录集?

大型记录集 (VBA) 的 MS Access 插入慢

asp获取access数据库中的一条随机记录

Access 2010 VBA - 打开新记录集 - 打开之前意外保存的值

ASP+ACCESS里怎样按某条字段值自定义排序?

在 MS Access 中选择列表框