本帖最后由 bcrun 于 2010-08-18 12:43:23 编辑

解决方案 »

  1.   

    ini文件一般是自动生成的,如果其中有相应的动态文件,可以用Open "\路径\*.ini" For Input As #1的方法打开它,读取内容后进行相应处理,得到你所想要的字串,然后在conn.Open中引用这个字串即可。
      

  2.   

    Public Sub OpenConn() '连接数据库
      Set conn = New ADODB.Connection
      Set Rs = New ADODB.Recordset
      conn.CursorLocation = adUseClient
      conn.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=SBGL;Data Source=" & strServerName & " '连接局域网上ZHUXL主机上的SQL数据库
      End Sub******************************
    这样修改你的连接语句
      

  3.   

    Option ExplicitPublic sIniFileDir As String  'ini文件的路径
    Public sNeirong() As StringDeclare 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 LongPublic Function FlGetUserINI()
        Dim lpOut   As String * 128
        Dim Ret     As Long
        Dim i As Integer
        Dim sUser As String
        Dim sKey As String
        
        sIniFileDir = Trim(App.Path)
        If Right(sIniFileDir, 1) <> "\" Then sIniFileDir = sIniFileDir & "\"
        sIniFileDir = sIniFileDir & "HAS_SIM.INI"
        
        For i = 0 To 1000
            sKey = "KEY" & i + 1
            Ret = GetPrivateProfileString("keshi", sKey, "", lpOut, 128, sIniFileDir)
            sUser = FlLeftB(lpOut, Ret)
            If sUser = "" Then
                Exit Function
            End If
            ReDim Preserve sNeirong(i)
            sNeirong(i) = sUser
        NextEnd FunctionPublic Function FlLeftB(p1 As String, p2 As Long) As String
        FlLeftB = StrConv(LeftB(StrConv(p1, vbFromUnicode), p2), vbUnicode)
    End Function一个读取ini文件的例子  你参考下吧!~你去看看那2个api就知道什么意思了!~ 
      

  4.   

    谢谢 strServerName 又从哪里读取呢?在ini文件里?我看见人家程序里的ini文件里是有ServerName这项
      

  5.   

    从ini文件读取主机名,放到变量strServerName里,你的连接字符串使用strServerName
      

  6.   

    好的 谢谢 看不太懂呀 这个例子里的 HAS_SIM.INI 文件是不是就是读取主机名然后放到变量strServerName里?
      

  7.   

    参考http://topic.csdn.net/u/20100308/10/c17fc7fe-ddcc-4b30-bcd3-9d5697a0570c.html
      

  8.   

    INI文件是运用程序的配置文件,其中可以配置一些常需要修改的信息,比如数据库连接字符串,配置参数等等
      

  9.   

    ini文件用API读取指定值,赋值到变量
      

  10.   

    '状态文件与数据库连接字符串中的DB,USERNAME,PASSWORD,分别保存在两天不同INI文件中。
    Option Explicit
    Public PstrConfArr(4) As String '1:User Name,2:Pssword,3:Database Name
    Public PstrConfArr_Status(4) As String '1:User Name,2:Pssword,3:Database NamePublic Function MainSysOpening()
    'On Error GoTo errMain:
        Call PSubReadConf_Status
        If Trim(PstrConfArr_Status(1)) = "0" Then
            frmlogin.Show
            Exit Function
        Else
            Call PSubReadConf             PUserName = PstrConfArr(1)
                 PUserPassword = PstrConfArr(2)
                 PUserDbName = PstrConfArr(3)
                 Call PopenDBConnection
        End If
    End FunctionPublic Function PSubReadConf()
    Dim rcStr As String    Dim fso As New Scripting.FileSystemObject
        Dim myTxt, i
        
        Set myTxt = fso.OpenTextFile(Filename:=App.Path + "\dads.conf", IOMode:=ForReading)
        With myTxt
            i = 1
            Do Until i > 3 '.AtEndOfStream
            'Me.Controls("Text" & i).Text = .ReadLine
            rcStr = .ReadLine
            PstrConfArr(i) = StringEnDeCodecn(rcStr, 75)
            'Debug.Print strConfArr(i)
            i = i + 1
            Loop
            .Close
        End With
        
    End FunctionPublic Function PSubReadConf_Status()
        Dim fso As New Scripting.FileSystemObject
        Dim myTxt, i
        
        Set myTxt = fso.OpenTextFile(Filename:=App.Path + "\Status.conf", IOMode:=ForReading)
        With myTxt
            i = 1
            Do Until .AtEndOfStream
            'Me.Controls("Text" & i).Text = .ReadLine
            PstrConfArr_Status(i) = .ReadLine 'StringEnDeCodecn(rcStr, 75)
            'Debug.Print strConfArr(i)
            i = i + 1
            Loop
            .Close
        End With
    End FunctionPublic Function PopenDBConnection()
    On Error GoTo errOpenBDConnection:
                sSQL = "Provider=OraOLEDB.Oracle.1;Persist Security Info=True;User ID=" + Trim(PUserName) + ";Password=" + Trim(PUserPassword) + ";Data Source=" + Trim(PUserDbName)
                
                ConnString = sSQL 'Save the Public connection string.
                Conn.Open sSQL
                frmLoginByUsers.Show
                Exit Function
    errOpenBDConnection:
            MsgBox ("Database connection failed!" & vbCrLf & Err.Number & Err.Number & vbCrLf & Err.Description), vbCritical, " EnterpriseIQ System"
            Exit Function
    End Function
      

  11.   

    谢谢大家了 我是通过读取ini文件里的信息 然后生成连接字符串 
      

  12.   

    你可以写一个配置文件。通过配置文件写入INI中。程序读INI文件就可以了。