我是编程新手。我使用的是Visual Basic 2010。我有一个名为CoreDataSet的Access数据源,它有三个表:Rate、Vendors、Zones。我已经将Vendors表绑定到两个组合框,当选择一个供应商的名称时,其邮政编码的前三位将出现在相应组合框旁边的标签中。我想把这两个标签(或两个3位数字的邮政编码)交叉引用到"Zones“表中。zones表的顶部有三个数字的zip (列名),第二列有三个数字的zipes,如下所示(示例):
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),如下所示:
Select [020]
From Zones
Where (Zip = ?)我的VB代码是:
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...
Select [" + Label1 + "]
From Zones
Where (Zip = ?)不起作用。如何在select子句中使用参数,或者让它将Label1的值识别为要选择的列?
发布于 2012-09-19 17:17:42
基本上,你想要一个类似这样的查询:
SELECT zones.[020]
FROM zones
WHERE zones.[zip]="021"例如:
s= "SELECT zones.[" + Label1 + "] FROM zones WHERE zones.[zip]='" + Label2 + "'"如果label2可以编辑,您将需要一个参数查询。
你的桌子设计有点奇怪。
https://stackoverflow.com/questions/12485422
复制相似问题