首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Visual Basic 2010交叉引用Access数据源中的表

如何使用Visual Basic 2010交叉引用Access数据源中的表
EN

Stack Overflow用户
提问于 2012-09-19 05:34:32
回答 1查看 2K关注 0票数 0

我是编程新手。我使用的是Visual Basic 2010。我有一个名为CoreDataSet的Access数据源,它有三个表:Rate、Vendors、Zones。我已经将Vendors表绑定到两个组合框,当选择一个供应商的名称时,其邮政编码的前三位将出现在相应组合框旁边的标签中。我想把这两个标签(或两个3位数字的邮政编码)交叉引用到"Zones“表中。zones表的顶部有三个数字的zip (列名),第二列有三个数字的zipes,如下所示(示例):

代码语言:javascript
复制
ID| ZIP | 020    |  021   | 022 ...
--+-----+--------+--------+-----------
1 | 020 | ZONE 1 | ZONE 2 | ZONE 3 ...
2 | 021 | ZONE 2 | ZONE 1 | ZONE 3 ...
3 | 022 | ZONE 3 | ZONE 2 | ZONE 1 ...

因此,从邮政编码022到021的发货区域是区域3,从022到022的发货区域是区域1。目标是选择两个供应商(每个组合框中一个),并在标签1和2中显示其3位数字的邮政编码(完成)和标签3中适用的UPS区域(未完成)。交叉引用有可能吗?请帮帮忙,谢谢。

我得到了一半的工作。我执行了一个查询(QueriesTableAdapter.query1),如下所示:

代码语言:javascript
复制
Select [020]
From Zones
Where (Zip = ?)

我的VB代码是:

代码语言:javascript
复制
Private Sub Button2_Click(ByVal...blablabla)
    Dim BTR As CoreDataSetTableAdapters.QueriesTableAdapter
    BTR = New CoreDataSetTableAdapters.QueriesTableAdapter()
    Dim returnValue As String
    Dim zip1 As String
    zip1 = Val(Label2.text)
    returnValue - CTYPE(BTR.query1(zip1), String)
    Label3.Text = returnValue
End Sub

这将选择从020发货到label2中输入的任何邮政编码的区域,它工作得很好。然而,我需要选择不同的“发货人”,而不仅仅是020...

代码语言:javascript
复制
Select [" + Label1 + "]
From Zones
Where (Zip = ?)

不起作用。如何在select子句中使用参数,或者让它将Label1的值识别为要选择的列?

EN

回答 1

Stack Overflow用户

发布于 2012-09-19 17:17:42

基本上,你想要一个类似这样的查询:

代码语言:javascript
复制
SELECT zones.[020]
FROM zones
WHERE zones.[zip]="021"

例如:

代码语言:javascript
复制
s= "SELECT zones.[" + Label1 + "] FROM zones WHERE zones.[zip]='" + Label2 + "'"

如果label2可以编辑,您将需要一个参数查询。

你的桌子设计有点奇怪。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12485422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档