Я лично часто занимаюсь некоторыми программами с базами данных, поэтому у меня есть глубокое понимание проблемы взаимодействия программ с базой данных, ведь когда VB подключается к базе данных, он обычно статический, то есть путь, по которому хранится база данных. исправлено, например, при использовании VB DATA, adodc, DataEnvironment и т. д. для подключения к базе данных, если путь для хранения базы данных изменен, путь не будет найден, что очень раздражает.
Решение автора — использовать app.path для решения этой проблемы.
1. Используйте элемент управления данными для подключения к базе данных следующим образом:
Добавьте в процесс form_load():
PRivateform_load()
Определение DimstrAsString
str=App.Path
ЕслиПраво(строка,1)<>"/"Тогда
стр=стр "/"
КонецЕсли
data1.databasename=str&"/имя базы данных"
data1.recordsource="имя таблицы данных"
данные1.обновить
подчинять
Смысл этих предложений — открыть базу данных в каталоге, где запущена текущая программа.
Вам просто нужно убедиться, что ваша база данных находится в том же каталоге, где находится ваша программа.
2. Используйте adodc (ADODataControl) для связи с базой данных:
Privateform_load()
Определение DimstrAsString
str=App.Path
ЕслиПраво(строка,1)<>"/"Тогда
стр=стр "/"
КонецЕсли
str="Provider=Microsoft.Jet.OLEDB.3.51;PersistSecurityInfo=False;DataSource="&str&"/tsl.mdb"
Adodc1.ConnectionString=str
Adodc1.CommandType=adCmdText
Adodc1.RecordSource="select*fromtable3"
Adodc1.Обновить
конец суб
3. Используйте DataEnvironment для связывания базы данных.
Вы можете включить в процесс:
OnErrorResumeNext
IfDataEnvironment1.rsCommand1.State<>adStateClosedThen
DataEnvironment1.rsCommand1.Close'Если открыто, закройте
КонецЕсли
'i=InputBox("Пожалуйста, введите номер друга:", "Введите")
'Ifi=""ЗатемExitSub
DataEnvironment1.Connection1.OpenApp.Path&"/userdatabase/tsl.mdb"
DataEnvironment1.rsCommand1.Open"select*fromtable3where number=""&i&"'"
'SetDataReport2.DataSource=DataEnvironment1
'DataReport2.DataMember="команда1"
'DataReport2.show
конец суб
4. Программирование с использованием ADO (ActiveXDataObjects):
Установите соединение:
dimconnasnewadodb.connection
dimrsasnewadodb.recordset
димстр
str=App.Path
ЕслиПраво(строка,1)<>"/"Тогда
стр=стр "/"
КонецЕсли
str="Provider=Microsoft.Jet.OLEDB.3.51;PersistSecurityInfo=False;DataSource="&str&"/tsl.mdb"
conn.openstr
rs.cursorlocation=aduseclient
rs.open"имя таблицы данных",conn,adopenkeyset.adlockpessimistic
Закройте базу данных после использования:
конн.закрыть
setconn=ничего->