Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Поиск по базе данных / 16 сообщений из 16, страница 1 из 1
07.04.2010, 17:02
    #36566570
Fantom55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по базе данных
Добрый день! очень нужна ваша ПОМОЩЬ! есть программа база данных, в которой осуществляется добавление. удаление , обновление . выход а самое главное Поиск по базе данных... вот с поиском и проблемы... выдает ошибку и естественно выделяет код (ниже приведен)
Подскажи пжл как это исправить ибо ОЧЕНЬ нужно(
Так же кину скриншот программы

' описание переменных cn (соединение с базой данных)
' и rs (набор записей базы данных)
Private cn As ADODB.Connection
Private rs As ADODB.Recordset
Private Sub Form_Load()
' cmd содержит адрес базы данных
Dim cmd As String
' sql - SQL-запрос
Dim sql As String
' установить соединение с базой данных
' и открыть набор записей
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset


провести поиск в соответствии с некоторым критерием
Private Sub Command2_Click()
Dim cmd As String: Dim sql As String
Dim cn As ADODB.Connection: Dim rs As ADODB.Recordset
cmd = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & _
"C:\Program Files\Microsoft Visual Studio\" & "VB98\Inf.mdb"
Set cn = New ADODB.Connection

With cn
.ConnectionString = cmd
.Open
End With

' переменные Po и Kr служат для хранения критериев поиска:
Po = InputBox("Введите названия полей, в которых будет_
проводиться поиск")
Kr = InputBox("Введите критерий, в соответствии с которым
будет проводиться поиск")
' ввести SQL запрос, в соответствии с которым выводятся
' только те строки, которые соответствуют критерию
sql = "Select * From Clients Where " & Po & Kr
Set rs = New ADODB.Recordset

With rs
' открыть только те строки таблицы, которые
' соответствуют критерию
.Open sql, cn, adOpenKeyset, adLockOptimistic
End With


' внести изменения в MSFlexGrid1:
MSFlexGrid1.Cols = rs.Fields.Count
MSFlexGrid1.Rows = 1
For i = 0 To rs.Fields.Count - 1
MSFlexGrid1.TextMatrix(0, i) = rs.Fields(i).Name
Next i

Do Until rs.EOF
MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1
For i = 0 To rs.Fields.Count - 1
If Not rs.Fields(i) = "" Then
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, i)_
= rs.Fields(i)
End If
Next i
rs.MoveNext
Loop

rs.Close: Set rs = Nothing
cn.Close: Set cn = Nothing
End Sub
...
Рейтинг: 0 / 0
07.04.2010, 17:06
    #36566585
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по базе данных
Текст ошибки уловить не смогли

используйте тэги при оформлении кода
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
' описание переменных cn (соединение с базой данных)
' и rs (набор записей базы данных)
Private cn As ADODB.Connection
Private rs As ADODB.Recordset
Private Sub Form_Load()
' cmd содержит адрес базы данных
Dim cmd As String
' sql - SQL-запрос 
Dim sql As String
' установить соединение с базой данных
' и открыть набор записей
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset


провести поиск в соответствии с некоторым критерием 
Private Sub Command2_Click()
Dim cmd As String: Dim sql As String
Dim cn As ADODB.Connection: Dim rs As ADODB.Recordset
cmd = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & _
"C:\Program Files\Microsoft Visual Studio\" & "VB98\Inf.mdb"
Set cn = New ADODB.Connection

With cn
.ConnectionString = cmd
.Open
End With

' переменные Po и Kr служат для хранения критериев поиска:
Po = InputBox("Введите названия полей, в которых будет_
проводиться поиск")
Kr = InputBox("Введите критерий, в соответствии с которым 
будет проводиться поиск")
' ввести SQL запрос, в соответствии с которым выводятся 
' только те строки, которые соответствуют критерию
sql = "Select * From Clients Where " & Po & Kr
Set rs = New ADODB.Recordset

With rs
' открыть только те строки таблицы, которые
' соответствуют критерию
.Open sql, cn, adOpenKeyset, adLockOptimistic
End With

' внести изменения в MSFlexGrid1:
MSFlexGrid1.Cols = rs.Fields.Count
MSFlexGrid1.Rows =  1 
For i =  0  To rs.Fields.Count -  1 
MSFlexGrid1.TextMatrix( 0 , i) = rs.Fields(i).Name
Next i

Do Until rs.EOF
MSFlexGrid1.Rows = MSFlexGrid1.Rows +  1 
For i =  0  To rs.Fields.Count -  1 
If Not rs.Fields(i) = "" Then
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows -  1 , i)_
= rs.Fields(i)
End If
Next i
rs.MoveNext
Loop

rs.Close: Set rs = Nothing
cn.Close: Set cn = Nothing
End Sub
...
Рейтинг: 0 / 0
07.04.2010, 17:07
    #36566587
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по базе данных
Также укажите значения переменных Po и Kr
...
Рейтинг: 0 / 0
07.04.2010, 17:12
    #36566599
Fantom55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по базе данных
Ошибка в этой части кода..и причем выскакивают совершенно разные ошибки

Код: plaintext
1.
2.
3.
4.
With rs
' открыть только те строки таблицы, которые
' соответствуют критерию
.Open sql, cn, adOpenKeyset, adLockOptimistic
End With



Описание переменных
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
' переменные Po и Kr служат для хранения критериев поиска:
Po = InputBox("Введите названия полей, в которых будет_
проводиться поиск")
Kr = InputBox("Введите критерий, в соответствии с которым 
будет проводиться поиск")
' ввести SQL запрос, в соответствии с которым выводятся 
' только те строки, которые соответствуют критерию
sql = "Select * From Clients Where " & Po & Kr
Set rs = New ADODB.Recordset
...
Рейтинг: 0 / 0
07.04.2010, 17:17
    #36566617
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по базе данных
Fantom55Ошибка в этой части кода..и причем выскакивают совершенно разные ошибки

Это не значит, что вы не должны приводить их текст.

Fantom55Описание переменных

Я просил привести не описания, а значения переменных. Я не могу угадать, что там у вас пользователь вводит.
...
Рейтинг: 0 / 0
07.04.2010, 17:21
    #36566630
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по базе данных
в общем так

Перепишите строку:
Код: plaintext
sql = "Select * From Clients Where " & Po & Kr

Вот так:
Код: plaintext
sql = "Select * From Clients Where '"+Kr+"' IN ("+Po+")"

Работать это будет, но будет несусветная глупость с точки зрения проектирования системы, ибо любой пользователь, введя соответствующие команды, может просто стереть вам базу
...
Рейтинг: 0 / 0
07.04.2010, 17:23
    #36566638
Fantom55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по базе данных
Насчет значений переменных: просмотрев код - не нашла.они не заданы...в таком случае,какие значения должны быть у этих переменных?(просто не судите строго,я новичок, обучаюсь Visual Basic сама без помощи преподавателей.....)

а вот сами ошибки
...
Рейтинг: 0 / 0
07.04.2010, 17:25
    #36566643
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по базе данных
Fantom55Насчет значений переменных: просмотрев код - не нашла.они не заданы...в таком случае,какие значения должны быть у этих переменных?

Вы вот этот код
Код: plaintext
Po = InputBox("Введите названия полей, в которых будет проводиться поиск")
сами вообще понимаете?
...
Рейтинг: 0 / 0
07.04.2010, 17:25
    #36566646
Fantom55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по базе данных
Да!!заработало!!!!!! спасибо огромное!!!!
...
Рейтинг: 0 / 0
07.04.2010, 17:28
    #36566661
Fantom55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по базе данных
ну сама по себе функция является отображением диалогового окна со строкой ввода поиска. Когда человек вводит название поля: Name или Role, к примеру, то следом осуществляется поиск именно в этом поле, какое было задано..так или не правильно?
...
Рейтинг: 0 / 0
07.04.2010, 17:29
    #36566665
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по базе данных
Fantom55Да!!заработало!!!!!! спасибо огромное!!!!

Повторяю. Сделано просто вопиющее нарушение всех норм. Пользоваться этой программой может только администратор на свой страх и риск и ни в коем случае к ней не должны допускаться пользователи.
...
Рейтинг: 0 / 0
07.04.2010, 17:30
    #36566670
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по базе данных
Fantom55ну сама по себе функция является отображением диалогового окна со строкой ввода поиска. Когда человек вводит название поля: Name или Role, к примеру, то следом осуществляется поиск именно в этом поле, какое было задано..так или не правильно?

Верно. Но ведь я-то не знаю, что ваш пользователь туда вводит и вы не хотите отвечать. Как я могу ответить, почему не работает программа?
...
Рейтинг: 0 / 0
07.04.2010, 17:35
    #36566687
Fantom55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по базе данных
так) смысл самого задания заключается в том: нужна база данных, подключенная к Visual Basic. Одним из пунктов задания является поиск актера из этой базы, к примеру нам нужно найти всех Aleksandr . Пользователь вводит вначале поле, в котором программа будет осуществлен поиск, а потом уже имя актера. В моем случае остается Домогаров и Маракулин, а потом пользователю, допустим из этих Александров необходимо найти 28 летнего Александра- Остается Александр Маракулин..вот....но нам не было объяснено вообще как и что делать...только по книгам и интернету я смогла хоть как то это сделать)
...
Рейтинг: 0 / 0
07.04.2010, 17:38
    #36566693
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по базе данных
Fantom55так) смысл самого задания заключается в том: нужна база данных, подключенная к Visual Basic. Одним из пунктов задания является поиск актера из этой базы, к примеру нам нужно найти всех Aleksandr .

Если это нужно исключительно для выполнения домашнего задания и безопасностью и проверкой корректности ввода данных можно пренебречь - тогда и фиг бы с ним.
...
Рейтинг: 0 / 0
07.04.2010, 17:41
    #36566707
Fantom55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по базе данных
да именно так) еще раз,спасибо за помощь!
...
Рейтинг: 0 / 0
07.04.2010, 17:42
    #36566713
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по базе данных
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Поиск по базе данных / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]