LEADERSOFT.ru Разработка на заказ программ и сайтов
Форумы по информационным технологиям
 
Регистрация  |  Вход
left
Форумы Минимизировать
ПоискСписок форумов
  Программирование  Microsoft Access. Файлы mdb и accdb  Access не может...
 Access не может определить CurrentProject
 
 16.09.2008 15:37:54
aulo
5 сообщения


Access не может определить CurrentProject

Добрый день!

Прощу прощения за ещё один вопрос, но тут происходит что-то для меня совсем непонятное.

Пишу код для вставки данных в таблицу, служащую источником комбобокса.

Private Sub Список_NotInList(NewData As String, Response As Integer)
    Dim cnn As New ADODB.Connection
    Dim bytOtvet As Byte

    Dim strSQL As String
    Set cnn = CurrentProject.Connection
   
    bytOtvet = MsgBox("Ввести новые данные?", vbYesNo + vbExclamation)

    If bytOtvet = vbYes Then
        strSQL = "INSERT INTO Таблица.[Код ТТ] VALUES ('" & _
        NewData & "')"
        Debug.Print strSQL
        cnn.Execute strSQL
        Response = acDataErrAdded
    ElseIf byrResponse = vbNo Then
        Response = acDataErrContinue
        Me![Код ТТ].Undo
    End If

End Sub

Пишет ошибку, что файл "...My Documents/Таблица.mdb" не найден. Т. е. Jet или что там, работающее с SQL, видит в названии таблицы имя файла, причём прописывание строки подключения ни отдельной строкой, ни в выражении SQL дела не меняют (!!!!!!!!!). Ситуация повторяется уже во второй форме (причём в разных базах). Может, не подключена какая-то библиотека? Но какая?

Ответов нигде найти не могу, извините, если повторяюсь.

 16.09.2008 15:39:27
aulo
5 сообщения


Re: Access не может определить CurrentProject

Да, в других случаях SQL в коде работает нормально, да и c CurrentProject проблем не было. Спасибо.

 16.09.2008 20:50:39
Admin1
731 сообщения
1-ый


Re: Access не может определить CurrentProject

 

1. Вообще CurrentProject.Connection без проверки не используют (по крайней мере это верно для adp проектов). Выход такой, надо проверить наличие данных в этой переменной, если там нет ничего, то создать новое соединение (открыть его). Можно сделать этот объект глобальным, т.е. при открытии формы открыть, а при закрытии закрыть


2. Анализ кода.
    Dim cnn As New ADODB.Connection
    Set cnn = CurrentProject.Connection

    New выделяет дополнительное место в памяти для класса, а нам нужна ссылка, память уже выделена в CurrentProject.Connection. Все не так просто, лучше создать новое соединение см. пункт 1

  Программирование  Microsoft Access. Файлы mdb и accdb  Access не может...
ПоискПоиск  Список форумовСписок форумов  
right