Открытие mdb из VB

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Лексей
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 121
Зарегистрирован: 03.08.2004 (Вт) 6:50
Откуда: Екатеринбург

Открытие mdb из VB

Сообщение Лексей » 03.08.2004 (Вт) 7:05

Люди помогите плиз!
Нужно открывать из VB6 базу данных mdb в приложении access с заданным именем пользователя и паролем (ну типа открывается окно access, причем имя пользователя и пароль в ручную вводить уже не надо). Использовал:
Код: Выделить всё
Dim oApp as Object

Set oApp = CreateObject("Access.Application")
oApp.DBEngine.OpenDatabase("путь",,,";UID=имя_пользователя;PWD=пароль")
oApp.Visible = True

Set oApp = nothing


а также
Код: Выделить всё
Shell "cmd /C start путь"


желаемый результат не получаю. Помогите!!! Заранее благодарен всем.

TEH3OP
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 143
Зарегистрирован: 12.12.2003 (Пт) 20:19
Откуда: Москва

Re: Открытие mdb из VB

Сообщение TEH3OP » 03.08.2004 (Вт) 9:14

Лексей писал(а):Люди помогите плиз!
Нужно открывать из VB6 базу данных mdb в приложении access с заданным именем пользователя и паролем (ну типа открывается окно access, причем имя пользователя и пароль в ручную вводить уже не надо). Использовал:
[code]
Dim oApp as Object

Set oApp = CreateObject("Access.Application")
oApp.DBEngine.OpenDatabase("путь",,,";UID=имя_пользователя;PWD=пароль")

Я конечно, не спец в Access, но мне как-то не нравится лексема ";UID=имя_пользователя;PWD=пароль" -- IMHO будет корректнее "UID=имя_пользователя;PWD=пароль;".

Желаю удачи!

baha76
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 168
Зарегистрирован: 07.01.2004 (Ср) 10:59
Откуда: Ташкент

Сообщение baha76 » 03.08.2004 (Вт) 9:15

Не лучше ли открывать базу данных через DAO или ADO??

Cyrax
Cyberninja
Cyberninja
Аватара пользователя
 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia

Re: Открытие mdb из VB

Сообщение Cyrax » 03.08.2004 (Вт) 18:27

Лексей писал(а):Люди помогите плиз!
Нужно открывать из VB6 базу данных mdb в приложении access с заданным именем пользователя и паролем (ну типа открывается окно access, причем имя пользователя и пароль в ручную вводить уже не надо). Использовал:
Код: Выделить всё
Dim oApp as Object

Set oApp = CreateObject("Access.Application")
oApp.DBEngine.OpenDatabase("путь",,,";UID=имя_пользователя;PWD=пароль")
oApp.Visible = True

Set oApp = nothing


а также
Код: Выделить всё
Shell "cmd /C start путь"


желаемый результат не получаю. Помогите!!! Заранее благодарен всем.
н-дя... а кто вас учил так доступ к базе данных организовывать?
несколько странный подход, я бы сказал...
лучше уж так:
Код: Выделить всё
Dim CN As ADODB.Connection
Dim RS As ADODB.Recordset

Set CN = New ADODB.Connection
With CN
  .Provider = "Microsoft.Jet.OLEDB.4.0"
  .ConnectionString = "путь_к_файлу.mdb"
  .Open
End With

Set RS = New ADODB.Recordset
With RS
  .ActiveConnection = CN
  .Source = "SQL-запрос"
  .Open

  Debug.Print .Fields("имя_поля_таблицы")

.Close
End With

Set RS = Nothing

CN.Close
Set CN = Nothing
Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно... (озадаченно) А это в какую сторону тянуть? Ну-ка... Ага, этот был лишний, этот вообще не отсюда, и этот... Точно, два болта.

Welcome to IRC

Samovar
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 111
Зарегистрирован: 23.05.2004 (Вс) 8:13

Сообщение Samovar » 03.08.2004 (Вт) 21:19

ConnectioString немного урезан...
Ученье - свет, неученых - тьма.

marvan
Бывалый
Бывалый
 
Сообщения: 269
Зарегистрирован: 22.06.2004 (Вт) 13:26
Откуда: Москва

Сообщение marvan » 04.08.2004 (Ср) 10:20

н-дя... а кто вас учил так доступ к базе данных организовывать?
несколько странный подход, я бы сказал...
лучше уж так
- и далее пример явно не в тему. типа базу открыл / закрыл, толком и поработать с ней не успел.
Код: Выделить всё
Shell "C:\Program Files\Access97\Office\MSACCESS.EXE C:\p.mdb /WrkGrp C:\P.MDW /User vasia /PWD 2004", vbNormalFocus

baha76
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 168
Зарегистрирован: 07.01.2004 (Ср) 10:59
Откуда: Ташкент

Сообщение baha76 » 04.08.2004 (Ср) 11:27

Доступ к базе через DAO:
Код: Выделить всё
Option Explicit

Private db As Database

' References DAO 3.51 или 3.6

Private Sub Form_Load()
On Error Resume Next

    Dim strConnect As String
    strConnect = ";DATABASE=C:\DB\base.mdb" & _
                 ";USR=login;PWD=passw"
   
    Set db = OpenDatabase("", True, False, strConnect)
    '....
    'работа с базой
    '....
    db.Close
    Set db = Nothing
   
End Sub

TEH3OP
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 143
Зарегистрирован: 12.12.2003 (Пт) 20:19
Откуда: Москва

Я тоже хотеть птица пугать! (с) Дэрсу Узала

Сообщение TEH3OP » 04.08.2004 (Ср) 12:11

А вот я тоже выпендрюсь: ;-)
Cyrax писал(а):
Код: Выделить всё
With CN
  .Provider = "Microsoft.Jet.OLEDB.4.0"
  .ConnectionString = "путь_к_файлу.mdb"
  .Open
End With


Если верить MSDN, то строка соединения в *.mdb базой данных должна выглядеть так: "Driver={Microsoft Access Driver (*.mdb)};Dbq=<полное (т.е. с путём) имя файла с расширением mdb>;", -- и оного достаточно для успешного соединения с БД Access. Ещё, естевственно, допустимы общие для всех драйверов параметры: "DSN", "FIL". Дополнительно поддерживаются "UID", "PWD", "DefaultDir" и пр.
Я, например, если делаю прогу с маленькой БД, то использую такую строку: "
Код: Выделить всё
"Driver={Microsoft Access Driver (*.mdb)}; & _
"Dbq=<имя файла mdb>;" & _
"DefaultDir=<путь к файлу mdb>;" & _
"Uid=<имя пользователя>;" & _
"Pwd=<пароль>;"

Удобство в том, что DefaultDir я задаю как VB.App.Path, а в DBQ прописываю только имя файла с БД.

ФСЁ! Выпендрился! спасибо за внимание. ;-)

PS: Если кто-то знает как всё, что я тут понаписал лучше сделать -- КЛЁВА, пишите, буду рад исправиться.
PPS: В MSDN про ConnectionString для Access написано тут.

baha76
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 168
Зарегистрирован: 07.01.2004 (Ср) 10:59
Откуда: Ташкент

Сообщение baha76 » 04.08.2004 (Ср) 14:33

Зря ты так, никто тут не выпендривается, а просто дают советы. Принимать это или нет - дело автора топика! :)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 32

    TopList  
cron