就是我一般在一个窗体用完一个数据库后就会将表和库关闭,但是在另一个窗体重新打开用时,它会提示说什么文件打开或关闭,不能进行此操作!明明我是关闭数据库的?提示错误语句为:
  db3.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\studentdb.mdb;Persist Security Info=False"
 rs3.Open "select * from ClassInfo where 班号 ='" & ss & " '"还有一个问题是关于MSFlexGrid1表格的,当我运行时会出现提示"对象变量或with块变量未设置",并指出错误为:
db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\StudentDB.mdb;Persist Security Info=False"
Set ms1.DataSource = db.Execute("select * from studentinfo")
是不是没连接ODBC啊?
再说本来就对MSFlexGrid或是MHSFlexGrid 不熟,求哪位高人给我指点一下好吗?还有一个问题也是关于一个修改密码的运行时也会出现错误提示错误的语句为:
Dim db1 As New ADODB.Connection
Dim rs1 As New ADODB.Recordset
Dim co1 As New ADODB.Command
Private Sub Command1_Click()
db1.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\studentdb.mdb;Persist Security Info=False"
co1.ActiveConnection = db1
co1.CommandText = "select * from tbUser where 用户名='" & Form2.usename1 & "'"
co1.CommandType = adCmdTable
co1.CommandTimeout = 15
Set rs1 = co1.Execute //主要是这一句
本来不是用command属性的
但是也是出现了上面第一个错误后改成这样的?虽然问题多了点,但我相信这对高人来说只是小CASE,求求各位给我解决一个好吗?

解决方案 »

  1.   

    dim sql as string
    dim con as new adodb.connection '连接
    dim rs as new adodb.recordset '记录集
    dim ms1 as new datagrid '表格控件
    '设连接字付串
    Con.ConnectionString = "Provider=SQLOLEDB.1;Data Source=" + Url + ";Persist Security Info=True;User ID=用户名;Password=密码;Initial Catalog=" + 数据库名
    Con.Opensql = "sql语句"'-------建立到表的查询,参数接收SQL语句
    rs.CursorLocation = adUseClient     '设置游标为客户端游标
    rs.Open Sql, Con, adOpenStatic, adLockBatchOptimistic, adCmdTextset MS1.DataSource = rs
      

  2.   

    怎么我刚才用的时候,说datagrid无效的定义
      

  3.   

    不要每一个窗口都使用一个连接语句。
    新建立一个bas模块,在里面定义一个全局的数据库连接变量变量,在第一个窗口加载或者是Main函数中打开这个连接就醒了。
    你的问题是微软的一个问题,access本身功能就不是很大,没有办法。
    还有一个解决办法就是做成系统ODBC数据源,系统会帮你维护,但是这样还是会出现上面的问题,最好的办法就是全局变量。
      

  4.   

    还有一个问题是关于MSFlexGrid1表格的,当我运行时会出现提示"对象变量或with块变量未设置",并指出错误为: 
    db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\StudentDB.mdb;Persist Security Info=False" 
    Set ms1.DataSource = db.Execute("select * from studentinfo") 
    是不是没连接ODBC啊? 
    再说本来就对MSFlexGrid或是MHSFlexGrid 不熟,求哪位高人给我指点一下好吗?
    不能这样用,db.execute是返回一个recordset不错,但是这不是一个实体的recordset,可以这样用:dim rs as new recordsetrs.open "select * from studentinfo",db,1,1Set ms1.DataSource =rs
    或者是ms1.DataSource =rs
    我不试验那一个行了
      

  5.   

    re:该对象模块派生的对象模块中成员己存在把所有的与该变量相关的,在其他模块中或过程中定义的都注释掉,因为这是一个全局变量,不能够重复定义。还有就是每次用完只需要关闭recordset,不需要关闭connection
      

  6.   

    怎么样定义一个BAS模块呢!还有我刚才定义ms1为 datagrid类型的全局变量时,系统提示  该对象模块派生的对象模块中成员己存在 那是怎么回事呢?