Как создать перекрестную ссылку на таблицу в источнике данных Access с помощью Visual Basic 2010

Я очень новичок в программировании. Я использую Visual Basic 2010. У меня есть источник данных Access с именем CoreDataSet, в нем есть три таблицы: Rates, Vendors, Zones. Я привязал таблицу поставщиков к двум полям со списком, когда выбрано имя поставщика, первые три цифры их почтового индекса появляются в метке рядом с соответствующим полем со списком. Я хочу взять эти две метки (или два трехзначных почтовых индекса) и сделать перекрестную ссылку на таблицу «Зоны». Таблица зон имеет список из трехзначных почтовых индексов вверху (имена столбцов) и трехзначных почтовых индексов во втором столбце и выглядит следующим образом (пример):

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 (не выполнено). Возможны ли перекрестные ссылки? Пожалуйста, помогите, спасибо.

У меня половина на работе. Я сделал запрос (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 в качестве столбца для выбора?


person user1681199    schedule 18.09.2012    source источник


Ответы (1)


В основном вам нужен такой запрос:

SELECT zones.[020]
FROM zones
WHERE zones.[zip]="021"

Теперь все, что вам нужно сделать, это настроить запрос для соединения, заменив поля (столбцы) и значения метками.

Например:

s= "SELECT zones.[" + Label1 + "] FROM zones WHERE zones.[zip]='" + Label2 + "'"

Если label2 можно редактировать, вам понадобится параметр query.

Дизайн вашего стола немного странный.

person Fionnuala    schedule 19.09.2012
comment
Когда я подставляю зоны.[020] с [020] это работает. Когда я использую каждую комбинацию [ + Label1 + ], это не так. Как мне понять, что это переменная? - person user1681199; 02.10.2012