|
|
|
| Подскажите функцию проверки
"наличие таблицы в другой базе"
только чтоб без DAO и без ADO. | |
|
| |
|
|
|
| не покатит?
Function TablesInDB(PathDB As String)
Dim Wsp As Workspace, Dbs As Database, Tdf As TableDef
Set Wsp = DBEngine.Workspaces(0)
Set Dbs = Wsp.OpenDatabase(PathDB)
For Each Tdf In Dbs.TableDefs
'прыгаем по таблицам
MsgBox Tdf.Name
Next Tdf
Set Tdf = Nothing
Set Dbs = Nothing
Set Wsp = Nothing
End Function
Function a1()
TablesInDB ("c:\ac1.mdb")
End Function
|
а почему
только чтоб без DAO и без ADO
|
| |
|
| |
|
|
|
| Что ба не использовать подключаемые библиотеки...
так нуно..
Но то, что ВЫ привели подразумевает либо DAO либо ADO.... cё равно | |
|
| |
|
|
|
| потомукак вот в текущей базе можно проверить вот так....
Public Function Nalichie_Tablici_v_Baze(str As String) As Boolean
'Возвращает true если есть таблица в базе
Nalichie_Tablici_v_Baze = False
On Error GoTo Met1
Dim SearchString As String
SearchString = CurrentDb.TableDefs(str).Connect
Nalichie_Tablici_v_Baze = True
Exit Function
Met1:
Nalichie_Tablici_v_Baze = False
End Function
|
а в другой базе??? | |
|
| |
|
|
|
| вот вот.
КАК без DAO/ADO удаленно подключиться к другой базе?....
хотя стоп! идея... щаз проверю... | |
|
| |
|
|
|
| SearchString = CurrentDb.TableDefs(str)
Connect="Путь к базе...." | |
|
| |
|
|
|
|
Set Tdf = Nothing
Set Dbs = Nothing
Set Wsp = Nothing
End Function
Function a1()
TablesInDB ("c:\ac1.mdb")
End Function
|
ты и тута всё открытым оставил....
Везде надо клосе
Dbs.close
а потом
Set Dbs = Nothing | |
|
| |
|
|
|
|
Подскажите функцию проверки
"наличие таблицы в другой базе"
только чтоб без DAO и без ADO.
|
| |
|
| |
|
|
|
|
Public Function fTable(strTableName As String, _
Optional strPath As String = "C:\Program Files\Microsoft Office\OFFICE11\SAMPLES\Борей.mdb") As Boolean
fTable = False
On Error GoTo ErrorHandler
DoCmd.SetWarnings False
DoCmd.RunSQL "DELETE * FROM [" & strTableName & "] IN '" & strPath & "' WHERE 1=0;"
DoCmd.SetWarnings True
fTable = True
ErrorHandler:
Select Case Err.Number
Case 0
MsgBox "Есть <<" & strTableName & ">> такая таблица!"
Case 3078
MsgBox "Нет <<" & strTableName & ">> такой таблицы!"
Case Else
MsgBox Err.Number & ">>--" & Err.Description
End Select
End Function
|
| |
|
| |
|
|
|
| При повторном вызове данной функции будет писать
"Нет <<" & strTableName & ">> такой таблицы!"
или условие не позволит этого (DELETE) сделать (WHERE 1=0) | |
|
| |
|
|
|
|
| >Подправил обработчик
это при прочих неприятностях - да?
MsgBox Err.Number & ">>--" & Err.Description | |
|
| |
|
|
|
| отлавливать сообщение jet о том "...что не может найти входную таблицу..." | |
|
| |
|
|
|
| проблема может быть в том, что если ошибок больше чем одна - какую ошибку jet отловит в первую очередь? Ведь Вы же просили без ADO & DAO !!!! | |
|
| |
|
|
|
| Верно... | |
|
| |
|
|
|
| Чудесно так ты видимо таким образом знаешь как выполнить функцию в другой базе? | |
|
| |
|
|
|
| Я тут бъюсь никак не разберцсь...
Private Sub RunAccessSub()
Dim ot As String
Dim appAccess As Access.Application
Set appAccess = CreateObject("Access.Application")
appAccess.OpenCurrentDatabase "C:\Program Files\Microsoft Office\Office10\библиотека.mde", False
'MsgBox appAccess.Run "библиотека.НаличиеЗапроса", "Q1"
appAccess.Run "библиотека.НаличиеЗапроса", ""
appAccess.Run "библиотека.Пропись", "23"
Set appAccess = Nothing
End Sub
|
| |
|
| |
|
|
|
| Всё работает, ошибок нет,
но результат работы функции не виден....
MsgBox не помогает | |
|
| |
|
|
|
| Функция возвращает значение указанное в объявлении.
True-таблица существует-однозначно
False-таблица не существует-вероятно | |
|
| |
|
|
|
|
Чудесно так ты видимо таким образом знаешь как выполнить функцию в другой базе?
|
Наверное, можно и так. Я по-другому делаю:
Если есть надобность в общем ресурсе >> ссылка на базу. | |
|
| |
|
|
|
| Это совсем другой вопрос.
Это не из этой оперы. | |
|
| |
|
|
|
| Вопрос :
Каким образом выполнить функцию в другой базе? (MDE) | |
|
| |
|
|
|
| так ссылку на базу откройте. Получите доступ к методам и свойствам проекта | |
|
| |
|
|
|
| ССылку в Referencу
или ссылку
appAccess.OpenCurrentDatabase "C:\Program Files\Microsoft Office\Office10\библиотека.mde", False
Или OpenDatabase
или... | |
|
| |
|