Мне нужно отобразить клиентов, которые приобрели продукт (на основе поиска пользователя) в списке. У меня есть пять разных таблиц в Access, которые хранят различную информацию и которые относятся друг к другу с идентификаторами (с помощью combox boxes в vb). Мне нужно иметь возможность искать продукт, например «Белый хлеб», тогда программа должна отображать полное имя и адрес клиента, хранящиеся в базе данных.Запрос нескольких таблиц и отображение результатов с SQL и доступа
Table: TransactionDetails
Fields: ID, stockID, custTransID
Table: CustomerTransaction
Fields: ID, custID, dateOfTransaction
Table: CustomerAccountDetails
Fields: ID, custFullName, custAddress, custLandline,
custMobile, custDOB, custCreditDetails
Table: StockDescription
Fields: ID, stockName, stockDesc, stockPrice
Table: SupplierDetails
Fields: ID, supplierName, supplier Address
Я думаю, что нужно использовать INNER JOIN для запроса нескольких таблиц сразу, но я не уверен, синтаксиса (я новичок в SQL). До сих пор у меня есть это:
Dim productSearch As String
productSearch = productSrchInput.Text
Dim databaseConnection As New OleDb.OleDbConnection
Dim counter As Integer
Dim array(10) As String
databaseConnection.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=assignment5database.accdb"
databaseConnection.Open()
Dim searchDatabase As OleDbCommand = New OleDbCommand("SELECT CustomerAccountDetails.custFullName, CustomerAccountDetails.custAddress " & _
"FROM CustomerAccountDetails " & _
"INNER JOIN StockDescription ON TransactionDetails.stockID = TransactionDetails.custTransID " & _
"WHERE StockDescription.stockName = '" & productSearch & "'", databaseConnection)
Dim searchResults As OleDbDataReader = searchDatabase.ExecuteReader
counter = 1
Do While searchResults.Read
srchResultsList.Items.Add(searchResults.Item(0))
counter += 1
Loop
databaseConnection.Close()
Вы пытались создать запрос в MS Access с помощью окна дизайна запроса? Есть несколько мастеров, и соединения перетаскиваются. – Fionnuala
Вышеприведенный код ПРИСОЕДИНИТЬ 'Клиентов' с' StockDescription', где у него должен быть другой JOIN с таблицей TransactionDetail. – PaulFrancis
Присоединение к MS Access может усложниться - это очень суетливо о скобках, поэтому мое предложение. – Fionnuala