Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 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)
        ;Dim SQLQuery As String
        ;Dim myAccessConn As OleDbConnection
        ;Dim dbReader As OleDbDataReader
        ;Dim SourceDB As String

        SourceDB = Application.StartupPath & "\Data\TelData.mdb"

        SQLQuery = "SELECT * FROM Abonents" & _
                " WHERE TelNum='" & SearchNum & "'"

        ;Dim dbCmd As OleDbCommand = New OleDbCommand(SQLQuery)

        Try
            myAccessConn = New OleDbConnection( _
            "Provider=Microsoft.Jet.OLEDB.4.0;" & ";Data Source=" & SourceDB)
            myAccessConn.Open()
            dbCmd.Connection = myAccessConn
            dbReader = dbCmd.ExecuteReader(CommandBehavior.SingleResult)
            ;Do 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
:)))

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам