2014-12-08 4 views
1

У меня есть настройка файла .ini, из которой я прочитал строки подключения. У меня есть modeule читать строки:Чтение строки подключения из файла .INI

Option Explicit 

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 


Public Const iniPath = "\DBSettings.INI" 


Public Sub Main() 
Dim dbPath As String 
Dim dbPath As String 
dbPath = GetSetting("DataBase", "DBPath") 
dbPath= GetSetting("DataBase", "DBPath") 
Form1.Show 

End Sub 


Private Function GetSetting(ByVal pHeading As String, ByVal pKey As String) As String 
Const cparmLen = 100 
Dim sReturn As String * cparmLen 
Dim sDefault As String * cparmLen 
Dim aLength As Long 
aLength = GetPrivateProfileString(pHeading, pKey _ 
      , sDefault, sReturn, cparmLen, App.Path & iniPath) 
GetSetting = Mid(sReturn, 1, aLength) 
End Function 

Теперь я пытаюсь отобразить строки по нажатию кнопки:

Option Explicit 

Public Sub Command1_Click() 

MsgBox (dbPath) 
MsgBox (dbPath) 

End Sub 

Однако, кажется, что форма не может видеть переменные в модуль. Как я могу это исправить? Любая помощь будет оценена по достоинству.

ответ

3

указан в sub, поэтому в правилах охвата указано, что переменная существует только в этом суб.

Для того, чтобы переменная видна везде объявить его в модуле с модификатором public доступа:

public dbPath as string

И удалить dim в main()

+0

Спасибо, что работали. Кроме того, как я могу получить доступ к значениям строки соединения из модуля, если они объявлены в главном модуле, как указано выше? – Navron

1

DBPATH является Процедура Scope переменной, а он объявляется внутри процедуры (Sub Main()). Это не будет видно из других модулей или даже самого модуля. А также вы не можете объявить переменную Public внутри процедуры (Sub или Function).

Для получения дополнительной информации о видимости переменных: http://msdn.microsoft.com/en-us/library/1t0wsc67.aspx

Смежные вопросы