У меня есть небольшой скрипт VBA с некоторыми функциями, которые я хотел бы преобразовать в один файл VBS.
Вот пример того, что у меня получилось:
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Private Function ReadIniFileString(ByVal Sect As String, ByVal Keyname As String) As String
Dim Worked As Long
Dim RetStr As String * 128
Dim StrSize As Long
Dim iNoOfCharInIni As Integer
Dim sIniString, sProfileString As String
iNoOfCharInIni = 0
sIniString = ""
If Sect = "" Or Keyname = "" Then
MsgBox "Erreur lors de la lecture des paramètres dans " & IniFileName, vbExclamation, "INI"
Access.Application.Quit
Else
sProfileString = ""
RetStr = Space(128)
StrSize = Len(RetStr)
Worked = GetPrivateProfileString(Sect, Keyname, "", RetStr, StrSize, IniFileName)
If Worked Then
iNoOfCharInIni = Worked
sIniString = Left$(RetStr, Worked)
End If
End If
ReadIniFileString = sIniString
End Function
И затем мне нужно использовать эту функцию, чтобы поместить некоторые значения в строки. VBS, похоже, не нравится ни одно из моих объявлений var ((Dim) MyVar As MyType
).
Если я смогу адаптировать этот код к VBS, я смогу выполнять и остальные свои функции. Как я могу адаптировать/преобразовать это в VBS? Спасибо.
Access.Application.Quit
, вероятно, ваш VBScript должен автоматизировать экземпляр приложения Access. И если вы это сделаете, исходный код VBA может работать без изменений в экземпляре Access. - person HansUp   schedule 30.11.2012Access.Application.Quit
, потому что интерфейса нет вообще, я просто завершаю скрипт, и работа сделана. Однако меня по-прежнему интересует ваше решение: запуск экземпляра Access без изменений. Целью этого проекта Access 2003 MDB является сжатие всех других баз данных. Существует небольшой графический интерфейс с несколькими кнопками для выбора базы данных для сжатия. Это работает очень хорошо. Однако теперь я хочу, чтобы вся работа выполнялась автоматически раз в неделю, когда всех нет дома. Вот почему я создал сценарий VBS, который Windows может запускать со встроенным планировщиком заданий. - person dan   schedule 30.11.2012Set objAccess = CreateObject("Access.Application")
Это ключевое назначение объекта для COM-автоматизации MS Access. Вы должны быть в состоянии найти множество подробных примеров с небольшим поиском. - person HansUp   schedule 30.11.2012GetPrivateProfileString()
из библиотеки kernel32 в VBS? - person dan   schedule 30.11.2012