lDsnOdbc = "DSN=" & lDsnName & ";UID=" & lUserId & ";PWD=" & lPwd & "; "
   Set m_AdoConn = New ADODB.Connection
    m_AdoConn.ConnectionTimeout = 600 '5 min
    m_AdoConn.CursorLocation = adUseClient
    m_AdoConn.Open lDsnOdbc

解决方案 »

  1.   

    以前使用的data control控件该怎样改进?
      

  2.   

    就是平时常用的那个。
    在有前进、后退黑箭头的那个。
    一般起名叫data1.
      

  3.   

    用了Data Control真麻烦,如果使用代码就不用改动了,直接换一个数据联接就搞掂了!
      

  4.   

    那是改用ADOBC那个控件吧!不过我认为程序最好用代码控制好些。
      

  5.   

    改用ADODC控件也需要一个一个改呀,还是用代码控制好些!
    另外 to cqq_chen(我是谁):
    给你的Email收到没有?
      

  6.   

    Access是本地数据库,不可能作为远程数据库的!!建议使用SQLSERVER
      

  7.   

    1、DATA控件属性里好象可以连ODBC的呀。
    2、改ADO吧,虽然我没感到什么好处,但大家都说好,那就用它吧,呵呵,好象也不怎么用改代码的吧。
      

  8.   

    通知帖子的主人
    我也在搞同样的项目
    我们一起切磋一下好吗?
    [email protected]
      

  9.   

    DAO的recordset有fields等属性。
    但ADO的recordset在哪里都不知道,该怎么改呀?
    谁能给详细讲讲ADO的应用或推荐什么参考网站或图书?
    可以再加分!to mostar
    欢迎交流!
      

  10.   

    set cn=new adodb.connection
    set rs=new adodb.recordset
    cn.open "....."
    rs.open "select * from tablename where ....",cn,3,3
    or
    set rs=cn.excute "select * from ......"rs.open "insert ......",cn,3,3
    rs.open "update........",cn,3,3etg.
      

  11.   

    單擊高級﹐選擇"來源WEB資料夾"
      

  12.   

    怎样访问远程的数据库?
    比如server的IP是 200.121.2.8
    数据源是 customer
    库类型 Access
      

  13.   

    選取資料庫﹐選擇"來源WEB資料夾" :http://200.121.2.8/*.mdb
      

  14.   

    很简单啊!
    将data控件的database属性改为网上邻居中服务器的access数据库不就行了吗??
      

  15.   

    一个用ODBCAPI访问,没用过
    还有就是在windows的控制面板中设置ODBC32位数据源,用系统DSN就可以在VB中用
    Set cn = New rdoConnection
    With cn
      .Connect = "DSN= ;PWD=  ;"
      .EstablishConnection
    End With
    不过我用的是RDO不是ADO,比较老了
    不知回答的是不是你想知道的
      

  16.   


    ODBC API函数的声明方法 
    与使用其它动态库函数一样,在VB中使用ODBC API函数之前,必须事先声明将要使用 
    的函数、常量和数据结构。ODBC API函数驻留在ODBC运行动态库ODBC.DLL(16位)或ODBC 
    32.DLL(32位)中,该动态库位于Windows子目录system中。通常做法是在VB项目中单独使 
    用一个模块文件,然后将ODBC API声明语句加入其中,下面就是本文实例中使用的模块文 
    件module1.bas的内容: Declare Function SQLAllocEnv Lib "odbc32.dll" (phenv&) As Integer 
    Declare Function SQLAllocConnect Lib "odbc32.dll" (ByVal henv&, phdbc&) As Integer 
    Declare Function SQLAllocStmt Lib "odbc32.dll" (ByVal hdbc&, phstmt&) AsInteger 
    Declare Function SQLConnect Lib "odbc32.dll" (ByVal hdbc&, ByVal szDSN$,ByVal cbDSN%, ByVal szUID$, ByVal cbUID%, ByVal szAuthStr$, ByVal cbAuthStr%) As Integer 
    Declare Function SQLColAttributesString Lib "odbc32.dll" Alias "SQLColAttributes" (ByVal hstmt&, ByVal icol%, ByVal fDescType%, ByVal rgbDesc As String, ByVal cbDescMax%, pcbDesc%, pfDesc&) As Integer 
    Declare Function SQLDisconnect Lib "odbc32.dll" (ByVal hdbc&) As Integer 
    Declare Function SQLExecDirect Lib "odbc32.dll" (ByVal hstmt&, ByVal szSqlStr$, ByVal cbSqlStr&) As Integer 
    Declare Function SQLFetch Lib "odbc32.dll" (ByVal hstmt&) As Integer 
    Declare Function SQLFreeConnect Lib "odbc32.dll" (ByVal hdbc&) As Integer 
    Declare Function SQLFreeEnv Lib "odbc32.dll" (ByVal henv&) As Integer 
    Declare Function SQLFreeStmt Lib "odbc32.dll" (ByVal hstmt&, ByVal fOption%) As Integer 
    Declare Function SQLGetData Lib "odbc32.dll" (ByVal hstmt&, ByVal icol%,ByVal fCType%, ByVal rgbValue As String, ByVal cbValueMax&, pcbValue&) As Integer 
    Declare Function SQLNumResultCols Lib "odbc32.dll" (ByVal hstmt&, pccol%) As Integer 
    Global Const SQL_C_CHAR As Long = 1 
    Global Const SQL_COLUMN_LABEL As Long = 18 
    Global Const SQL_DROP As Long = 1 
    Global Const SQL_ERROR As Long = -1 
    Global Const SQL_NO_DATA_FOUND As Long = 100 
    Global Const SQL_SUCCESS As Long = 0 需要说明的是,在函数声明时,应该根据程序的运行环境选择相应的动态库。在VB子 
    目录samples\remauto\db_odbc中有两个文本文件ODBC16.TXT和ODBC32.TXT,分别存有所 
    有16位和32位ODBC API函数、常量和数据结构的声明语句,编程时可以从中拷贝所需的声 
    明语句。 使用ODBC API的编程方法 
    在VB中调用ODBC API函数访问ODBC数据库,代码编写一般按下列过程进行: 
    1.初始化ODBC 
    在这个过程中,应用程序将通过调用SQLAlloEnv函数初始化ODBC接口,获取ODBC环境句柄。ODBC环境句柄是
    其它所有ODBC资源句柄的父句柄,因此无论程序将建立多少个ODBC连接,这个过程只需执行一次即可。例如: 
    Dim rc As Integer 'ODBC函数的返回码 
    Dim henv As Long 'ODBC环境句柄 
    rc = SQLAllocEnv(henv) '获取ODBC环境句柄 
    2.与ODBC数据源建立连接 
    这个过程由下列两个步骤组成: 
    *S调用SQLAllocConnect函数获取连接句柄。例如: 
    Dim hdbc As Long '连接句柄 
    rc = SQLAllocConnect(henv, hdbc) '获取连接句柄 
    *S建立连接。这个步骤可以通过多种方法实现,最简单直观的方法是调用SQLConnect函数。例如: 
    Dim DSN As String, UID As String, PWD As String 
    DSN = "DataSourceName" 'ODBC数据源名称 
    UID = "UserID" 
    '用户帐号 
    PWD = "Password" 
    '用户口令 
    rc = SQLConnect(hdbc, DSN, Len(DSN), UID, Len(UID), PWD, Len(PWD)) '建立 
    连接 
    3.存取数据 
    用户对ODBC数据源的存取操作,都是通过SQL语句实现的。在这个过程中,应用程序将通过连接向ODBC数据库
    提交SQL语句,完成用户请求的操作,具体步骤如下: 
    *S调用SQLAllocStmt函数获取语句句柄,例如: 
    Dim hstmt As Long 
    rc = SQLAllocStmt(hdbc, hstmt) 
    *S执行SQL语句。执行SQL语句的方法比较多,最简单明了的方法是调用SQLAllocStmt函数,例如: 
    Dim SQLstmt As String 
    SQLstmt = "SELECT * FROM authors" 
    rc = SQLExecDirect(hstmt, SQLstmt, Len(SQLstmt)) 
    4.检索结果集 
    如果SQL语句顺利提交并正确执行,那么就会产生一个结果集。检索结果集的方法很多,最简单、最直接的方
    法是调用SQLFetch和SQLGetData函数。SQLFetch函数的功能是将结果集的当前记录指针移至下一个记录,
    SQLGetData函数的功能是提取结果集中当前记录的某个字段值。通常可以采用一个循环提取结果集中所有
    记录的所有字段值,该循环重复执行SQLFetch和SQLGetData函数,直至SQLFetch函数返回SQL_NO_DATA_FOUND,
    这表示已经到达结果集的末尾。 
    Dim ColVal As String * 225 
    ColVal = String(255, 0) 
    Do Until SQLFetch(hstmt) = SQL_NO_DATA_FOUND 
    rc = SQLGetData(hstmt, i, SQL_C_CHAR, ColVal, Len(ColVal), SQL_NULL_DATA 
    Loop 
    5.结束应用程序 
    在应用程序完成数据库操作、退出运行之前,必须释放程序中使用的系统资源。这些系统资源包括:语句句柄
    、连接句柄和ODBC环境句柄。完成这个过程的步骤如下: 
    *S调用SQLFreeStmt函数释放语句句柄及其相关的系统资源。例如: 
    rc = SQLFreeStmt(hstmt, SQL_DROP) 
    *S调用SQLDisconnect函数关闭连接,例如: 
    rc = SQLDisconnect(hdbc) 
    *S调用SQLFreeConnect函数释放连接句柄及其相关的系统资源,例如: 
    rc = SQLFreeConnect(hdbc) 
    *S调用SQLFreeEnv函数释放环境句柄及其相关的系统资源,停止ODBC操作,例如: 
    rc = SQLFreeEnv(henv) 
    此外,在编制程序时还有一个需要重点考虑的问题,这就是错误处理。所有ODBC API函数,若在执行期间发生
    错误,都将返回一个标准错误代码SQL_ERROR。一般来讲,在每次调用ODBC API函数之后,都应该检查该函数
    返回值,确定该函数是否成功地执行,再决定是否继续后续过程。而详细的错误信息,可以调用SQLError函数
    获得。SQLError函数将返回下列信息: 
    *S标准的ODBC错误状态码; 
    *SODBC数据源提供的内部错误编码; 
    *S错误信息串。 
    简单应用实例 
    本实例将编制一个客户机端VB应用程序,通过Windows NT局域网查询服务器端MS SQL Server 6.5样板数据库
    PUBS中的AUTHORS数据表,在一个Grid控件中显示查询结果。首先,使用Windows控制面板中的ODBC驱动管理器
    新建一个ODBC数据源,定义数据源名称为ODBC_API_DEMO,定义登录数据库为PUBS,其它信息应根据用户的环境
    正确设置。然后启动VB,新建一个项目Project1,在缺省窗体Form1中加入一个Grid控件Grid1、两个
    CommandButton控件cmdQuery和cmdClose,在Project1中插入一个模块Module1,将前面列举的声明语句加入其
    中,程序代码如下: 
    Private Sub Form_Load() 
    Dim rc As Integer 
    rc = SQLAllocEnv(henv) 
    If rc <> 0 Then 
    MsgBox "无法初始化ODBC" 
    End 
    End If 
    rc = SQLAllocConnect(henv, hdbc) 
    If rc <> 0 Then 
    MsgBox "无法获得连接句柄" 
    rc = SQLFreeEnv(henv) 
    End 
    End If 
    Dim DSN As String, UID As String, PWD As String 
    DSN = "ODBC_API_DEMO" 
    UID = "guest" 
    PWD = "" 
    rc = SQLConnect(hdbc, DSN, Len(DSN), UID, Len(UID), PWD, Len(UID)) 
    If rc = SQL_ERROR Then 
    MsgBox "无法建立与ODBC数据源的连接" 
    End 
    End If 
    End Sub 
    Private Sub cmdQuery_Click() 
    Dim hstmt As Long 
    Dim SQLstmt As String 
    Dim RSCols As Integer, RSRows As Long 
    Dim rc As Integer, i As Integer, j As Integer 
    Dim ColVal As String * 1024 
    Dim ColValLen As Long, ColLabLen As Integer, larg As Long 
    rc = SQLAllocStmt(hdbc, hstmt) 
    If rc <> SQL_SUCCESS Then 
    MsgBox "无法获得SQL语句句柄" 
    Exit Sub 
    End If 
    SQLstmt = "SELECT * FROM authors" 
    rc = SQLExecDirect(hstmt, SQLstmt, Len(SQLstmt)) 
    If rc <> SQL_SUCCESS Then 
    MsgBox "SQL语句执行失败" 
    Exit Sub 
    End If 
    rc = SQLNumResultCols(hstmt, RSCols) 
    If RSCols > 1 Then 
    Grid1.Cols = RSCols 
    Grid1.Rows = 10 
    Grid1.Row = 0 
    Else 
    Exit Sub 
    End If 
    For i = 1 To RSCols 
    rc = SQLColAttributesString(hstmt, i, SQL_COLUMN_LABEL, ColVal, 255, Col 
    LabLen, larg) 
    Grid1.Col = i - 1 
    Grid1.Text = Left(ColVal, ColLabLen) 
    Next i 
    Do Until SQLFetch(hstmt) = SQL_NO_DATA_FOUND 
    ColVal = String$(1024, 0) 
    If Grid1.Row + 1 >= Grid1.Rows Then 
    Grid1.Rows = Grid1.Rows + 1 
    End If 
    Grid1.Row = Grid1.Row + 1 
    For i = 1 To RSCols 
    rc = SQLGetData(hstmt, i, SQL_C_CHAR, ColVal, Len(ColVal), ColValLen) 
    Grid1.Col = i - 1 
    Grid1.Text = Left$(ColVal, ColValLen) 
    Next i 
    Loop 
    rc = SQLFreeStmt(hstmt, SQL_DROP) 
    End Sub 
    Private Sub cmdClose_Click() 
    Dim rc As Integer 
    If hdbc <> 0 Then 
    rc = SQLDisconnect(hdbc) 
    End If 
    rc = SQLFreeConnect(hdbc) 
    If henv <> 0 Then 
    rc = SQLFreeEnv(henv) 
    End If 
    End 
    End Sub 
    本例程序在Visual Basic 4.0、Windows 95环境下调试通过。 
      

  17.   

    我输入了远程的IP地址,同时在本地也有一个数据源customer,
    但是运行起来总是访问本地的customer.
    怎么回事?
      

  18.   

        lDsnOdbc = "DSN=" & lDsnName & ";UID=" & lUserId & ";PWD=" & lPwd & "; " & "Server=" & lKepIP
      Set m_AdoConn = New ADODB.Connection
        m_AdoConn.ConnectionTimeout = 600 '5 min
        m_AdoConn.CursorLocation = adUseClient
        m_AdoConn.Open lDsnOdbc就是Server=lKepIP,好象根本不起作用。如果去掉本地的数据源customer就出错。
      

  19.   

    使用adodb.connection, adodb.recordset 等连odbc driver不就行了吗