Открытие базы данных Access

Ghost-N1

Здраствуйте! у меня проблема, пытаюсь прописать путь к базе данных Access 97 офиса, но он не принимает такого! вот текст:Private Sub File1_Click()sf = File1.Path & " \ " & File1.FileNameDim CD As CommonDlgSet CD = New CommonDlgCD.CancelError = TrueCD.Filter = "база данных|*.mdb|Все файлы|*.*"CD.DialogTitle = "Выбор файла"CD.InitDir = App.PathCD.CancelError = TrueCD.ShowOpenIf CD.FileName = "" Then Exit SubDim db As ConnectionSet db = New Connectiondb.CursorLocation = adUseClientdb.open "PROVIDER=MSDataShape;Data PROVIDER=Microsoft.Jet.OLEDB.3.51;Data Source=CD.FileName"Set adoPrimaryRS = New RecordsetadoPrimaryRS.open "SHAPE {select Фамилия,Имя,Отчество,код from Таблица1} AS ParentCMD APPEND ({select [Дата рождения],Возраст,Адрес,Должность,ИНН,[кол-во иждевенцев],[номер договора],[стаж работы(лет)],код from Таблица1 } AS ChildCMD RELATE код TO код) AS ChildCMD", db, adOpenStatic, adLockOptimisticDim oText As TextBoxFor Each oText In Me.txtFieldsSet oText.DataSource = adoPrimaryRSNextSet grdDataGrid.DataSource = adoPrimaryRS("ChildCMD").UnderlyingValue mbDataChanged = FalseEnd Subпытался и просто присвоенной переменной как нибудь, но не получается... пожалуйста помогите...
9 ответов

Ghost-N1

db.open "PROVIDER=MSDataShape;Data PROVIDER=Microsoft.Jet.OLEDB.3.51;Data Source= " & CD.FileNameТАК пробовал?С уважением, Николай.


Ghost-N1

Попробовал, теперь пишет "Run-time error'-2147217904(80040e10)' отсутствует значение для одного или нескольких параметров.


Ghost-N1

adoPrimaryRS.open "SHAPE {select Ôàìèëèÿ,Èìÿ,Îò÷åñòâî,êîä from Òàáëèöà1} AS ParentCMD APPEND ({select [Äàòà ðîæäåíèÿ],Âîçðàñò,Àäðåñ,Äîëæíîñòü,ÈÍÍ,[êîë-âî èæäåâåíöåâ],[íîìåð äîãîâîðà],[ñòàæ ðàáîòû(ëåò)],êîä from Òàáëèöà1 } AS ChildCMD RELATE êîä TO êîä) AS ChildCMD", db, adOpenStatic, adLockOptimistic вот в этой строке теперь ошибка =(((


Ghost-N1

gjghjc Спасибо, я разобрался)


Ghost-N1

Если разобрался то написал бы как, хоть бы другие прочитали. Не хорошо, так.В форумах, знаете ли, ищут иногда как другие свои проблемы решают


Ghost-N1

> Автор: prodox> Если разобрался то написал бы как, хоть бы другие прочитали. Не хорошо, так.Читать вообще-то нужно документацию! Тогда и таких вопросов не будет> В форумах, знаете ли, ищут иногда как другие свои проблемы решаюттри разаНа форумах часть людей ищет "пинка" в нужном направлении и дальше саморазвивается, в основном чтением документации, другая часть людей ищет готовый код, для решения своих проблемк сожалению большинство так и остается дубами и меняет професию, а третья часть людей приходит просто поговорить ;)З.Ы. Будешь ныть или ... ?


Ghost-N1

что или?автор задал вопрос и сам его решилкак минимум порядочно было написать как он решил. Потому что у меня аналогичная проблема


Ghost-N1

> Автор: prodox> Потому что у меня аналогичная проблемаНу и как?З.Ы. Может хоть покажешь код с ошибкой и напишешь текст ошибки?


Ghost-N1

ММ, а если так попробовать: Создать форму, на неё Датагрид и Адодц. В форм лоад (к примеру) внести такую абракадабру:Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\БАЗА_ДАННЫХ.mdb;Mode=ReadWrite|Share Deny None;Persist Security Info=False"Adodc1.RecordSource = "SELECT * FROM НУЖНАЯ ТАБЛИЦА"Set DataGrid1.DataSource = Adodc1Adodc1.CommandType = adCmdTextAdodc1.CursorType = adOpenDynamicAdodc1.RefreshЕсли нужно вывести данные в текстбоксы, то Set text1.datasorce = adodc1...text1.dataField = "Нужный столбец из БД"Поиск записей:
  • просто найти в базе:Dim i As Stringi = InputBox("Укажите что ищем", "Поиск")Adodc1.Recordset.MoveFirstAdodc1.Recordset.Find "fio='" & i & "'"
  • найти и отфильтровать только нужные данные:ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\БАЗА_ДАННЫХ.mdb;Mode=ReadWrite|Share Deny None;Persist Security Info=False"RecordSource = "SELECT * FROM ТАБЛИЦА_В БД WHERE ЧТО_НИБУДЬ Like '" & КАКОЙ_НИБУДЬ ТЕКСТ БОКС & "'"Set DataGrid1.DataSource = Adodc1Adodc1.CommandType = adCmdTextAdodc1.CursorType = adOpenDynamicAdodc1.Refresh добавить данные :Adodc1.Recordset.addNew удалить данные :Adodc1.Recordset.deleteЕсли внесли данные (изменили данные) в текстовом боксе и нужно это сохранить в БД, то: Adodc1.Recordset.UPDATE