Господа!
Имеется разделенная база данных, где присоединенными таблицами являются таблицами из двух разных баз данных.
С помощью запроса из системной таблицы
«MSysObjects» получаю пути к этим базам данных и соответствующие имена файлов без разрешения, которые буду использовать как параметр
SELECT MSysObjects.Database, strDBDate([Database]) AS FN
FROM MSysObjects
GROUP BY MSysObjects.Database, strDBDate([Database])
HAVING (((MSysObjects.Database) Is Not Null)); |
В итоге получаю нужный мне результат
“Database” FN
G:\PathKross\kross.mdb kross
G:\PathBase\data.mdb data |
Где функция strDBDate([Database]) выделяет имя файла без расширения из полного пути
Public Function strDBDate(SPath As String) As String
Dim objFSO As FileSystemObject
Dim dbName As String, DbPath As String
Set objFSO = New FileSystemObject
dbName = SPath
DbPath = objFSO.GetParentFolderName(SPath)
dbName = objFSO.GetBaseName(dbName)
strDBDate = dbName
End Function |
Теперь в некой форме мне необходимо получить один из этих путей в зависимости от нужного параметра, который я сравниваю с полем запроса FN
=DLookUp("[Database]";"NetConfig";"[FN]='data'")
или
=DLookUp("[Database]";"NetConfig";"[FN]='kross'") |
Но в поле высвечивается ошибка. В запросе пославил условие «data» и выдает сообщение об ошибке «Несоответствие типов данных в условиях отбора». Что можно сделать, чтобы в DLookUp использовать этот критерий по FN=’data’ или FN=’kross’
Предполагаю, что функция strDBDate и ’data’ / ’kross’ имеют разные типы, но ведь согласно описанию функции strDBDate результат стринговый?