powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Поиск по базе данных
16 сообщений из 16, страница 1 из 1
Поиск по базе данных
    #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
Поиск по базе данных
    #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
Поиск по базе данных
    #36566587
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Также укажите значения переменных Po и Kr
...
Рейтинг: 0 / 0
Поиск по базе данных
    #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
Поиск по базе данных
    #36566617
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fantom55Ошибка в этой части кода..и причем выскакивают совершенно разные ошибки

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

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

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

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

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

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

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

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

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

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

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


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