Страница: 1 |
Страница: 1 |
Вопрос: как осущитсвить поиск в бд аксеса
Добавлено: 30.09.04 06:42
Автор вопроса: TX | ICQ: 139150044
есть прога, которая показывает базу данных аксеса, как сделать поиск например по номерам телефонов (telefon)
Ответы
Всего ответов: 8
Номер ответа: 1
Автор ответа:
Mihalыch
ICQ: 373-509-101
Вопросов: 56
Ответов: 330
Профиль | | #1
Добавлено: 30.09.04 07:05
Можно так:
Function FindRecord(rsName As ADODB.Recordset, FieldOfSearch As Variant, FindString As Variant) As Long
'FieldOfSearch - имя поля по которому осуществляется поиск
'FindString - искомое значение
On Error GoTo NoFinding
rsName.MoveFirst
rsName.Find FieldOfSearch & " = '" & FindString & "'"
FindRecord = rsName.AbsolutePosition
Exit Function
NoFinding:
FindRecord = -3
End Function
Номер ответа: 2
Автор ответа:
Diavolo
Вопросов: 6
Ответов: 46
Профиль | | #2
Добавлено: 30.09.04 09:04
Сделай SQL-запрос Ищи по чем хочешь, с любыми условиями
Номер ответа: 3
Автор ответа:
TX
ICQ: 139150044
Вопросов: 9
Ответов: 44
Профиль | | #3
Добавлено: 30.09.04 10:13
а как его сделать через sql - запрос - напиши поподробнее
Номер ответа: 4
Автор ответа:
Diavolo
Вопросов: 6
Ответов: 46
Профиль | | #4
Добавлено: 30.09.04 12:22
Думаю поймешь... Если что - спрашивай. Да, SQL-запрос любой сложности может быть, если надо, могу дать ссылку на хорошую простенькую книжку по этому язычку
Sub SearchData(ByVal SearchNum As String)
 im SQLQuery As String
 im myAccessConn As OleDbConnection
 im dbReader As OleDbDataReader
 im SourceDB As String
SourceDB = Application.StartupPath & "\Data\TelData.mdb"
SQLQuery = "SELECT * FROM Abonents" & _
" WHERE TelNum='" & SearchNum & "'"
 im dbCmd As OleDbCommand = New OleDbCommand(SQLQuery)
Try
myAccessConn = New OleDbConnection( _
"Provider=Microsoft.Jet.OLEDB.4.0;" & "ata Source=" & SourceDB)
myAccessConn.Open()
dbCmd.Connection = myAccessConn
dbReader = dbCmd.ExecuteReader(CommandBehavior.SingleResult)
 o While dbReader.Read()
lbUsers_.Items.Add(dbReader.GetString(0))
Loop
Catch e As Exception
MsgBox(e.Message)
End Try
End Sub
Номер ответа: 5
Автор ответа:
TX
ICQ: 139150044
Вопросов: 9
Ответов: 44
Профиль | | #5
Добавлено: 30.09.04 12:33
сразу вопрос - это куда писать
Номер ответа: 6
Автор ответа:
Diavolo
Вопросов: 6
Ответов: 46
Профиль | | #6
Добавлено: 30.09.04 12:51
Блин, в программе писать... объясняю, что делается... SearchData - некоторая процедурка, которая в соответствии с переданным в нее параметром SearchNum выполняет какие-то действия .
Итак. В переменную SourceDB сохраняем полный путь к БД. Далее - пишем запрос и сохраняем его в переменную SQLQuery.
Далее создаем соединение с БД (у тебя ж Access, если будет другая, то провайдера поменять надо будеть ...). Отрываем соединение, запускаем запрос. Результаты Запроса сохраняем в переменной dbReader (dbReader = dbCmd.ExecuteReader(CommandBehavior.SingleResult)). А далее по dbReader'у бегаем и читаем поля. Т.е. можем читать поля GetString(0), GetString(1), ... GetString(N), где N - количество полей в таблице. Прочитали - переходим к следующей записи из результатов запроса (снова dbReader.Read()) и так пока не окончатся записи. Если возникнет обшибочка - она будет перехвачена (для того блок Try-Catch-End Try). Ставь в прогу и работай. lbUsers_ - это у меня листбокс был, кажись... Че не понятно?
П.С. А вообще я не понял вопрос "Это куда писать?"
Номер ответа: 7
Автор ответа:
TX
ICQ: 139150044
Вопросов: 9
Ответов: 44
Профиль | | #7
Добавлено: 30.09.04 13:12
не - все окей - этоя не туда запостил - думал что в асе написал - с другом общались - он попросил бланк заполнить а что куда не сказал
Номер ответа: 8
Автор ответа:
Diavolo
Вопросов: 6
Ответов: 46
Профиль | | #8
Добавлено: 30.09.04 13:15
))