Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel SQL,其中未选择所有数据_Excel_Vb.net_Ms Access_Export To Excel - Fatal编程技术网

Excel SQL,其中未选择所有数据

Excel SQL,其中未选择所有数据,excel,vb.net,ms-access,export-to-excel,Excel,Vb.net,Ms Access,Export To Excel,我已经在一个范围内工作的应用程序中编写了一个导出(Access to Excel)函数 用户有4个单选按钮:A-F、G-M、N-R和S-Z 假设用户选择了rbtnAF,这将把所有客户加载到网格中,Customer\u code字段以A、B、C、D、E或F开头 要加载到数据中的代码如下所示: Dim strFields As String = "[Customer_Addresses].[Cust_Code], [Customers].[Customer_Name], [Customer_Addr

我已经在一个范围内工作的应用程序中编写了一个导出(Access to Excel)函数

用户有4个单选按钮:A-F、G-M、N-R和S-Z

假设用户选择了
rbtnAF
,这将把所有客户加载到网格中,
Customer\u code
字段以A、B、C、D、E或F开头

要加载到数据中的代码如下所示:

Dim strFields As String = "[Customer_Addresses].[Cust_Code], [Customers].[Customer_Name], [Customer_Addresses].[Contact_Code], [Customer_Addresses].[Contact_Name], " & _
        "[Customer_Addresses].[Contact_Type], [Customer_Addresses].[Add1], [Customer_Addresses].[Add2], [Customer_Addresses].[Add3], [Customer_Addresses].[Add4], " & _
        "[Customer_Addresses].[Add5], [Customer_Addresses].[Postcode], [Customer_Addresses].[Country], [Customer_Addresses].[Telephone], [Customer_Addresses].[Fax], " & _
        "[Customer_Addresses].[Email], [Customer_Addresses].[Mobile_Phone], [Customers].[Customer_Category], [Customers].[Average_Payment_Terms], " & _
        "[Customers].[Notes], [Customers].[salesRep], [Customers].[hoEmail], [Customers].[webpage] FROM Customers " & _
        "INNER JOIN Customer_Addresses ON [Customers].[Customer_Code] =[Customer_Addresses].[Cust_Code]"

    If rbtnAF.Checked = True Then
        sql = "SELECT " & strFields & " WHERE [Customer_Addresses].[Cust_Code] BETWEEN " & _
        "'A*' AND 'F*' ORDER BY [Customer_Addresses].[Cust_Code]"

        Dim da As New OleDbDataAdapter(sql, con)

        Dim ds As New DataSet
        Dim dt As New System.Data.DataTable

        da.Fill(ds)
        dt = ds.Tables(0).Copy()

        ugExport.DataSource = Nothing
        ugExport.DataSource = dt
我认为,这样做很好,我能够将正确的范围加载到网格中,并根据需要导出它们。 然而,用户回来告诉我,并没有加载所有客户

我觉得这有点奇怪,所以我加载了他们的数据库,自己测试了一下。在DB中,有4个客户符合A-F范围,如图所示

但是,当我在导出列表中查看客户范围A-F时,仅显示2个客户

还值得注意的是,在客户列表屏幕中有一个
文本框
,允许用户按客户代码进行搜索-当我只键入一个F时,所有4个客户都会按预期显示


究竟是什么原因导致导出列表中只显示2个结果,尽管有4条记录符合标准?

检查between语法,您会发现它将*视为一个文字字符,请参见此处

你可以用

Like "[A-F]*"
但事实并非如此