我想在窗体加载时获得SQL库表中的记录数,然后在保存在一个变量里或一个文本控件中,在增加一条记录时让自变量加1来做为下条的ID,
dim id as integer
conn.open dbq 打开数据库
rs.open "select count(*) from 表",conn,1,1
id=rs+1
rs.open "insert into 表 vluaes('" & id & "','adf','adfadf')",conn,1,1
这样能实现吗,这只是我的想象,我是初学,请最好给出一些代码,谢谢!
还有我定义了一个Public cmd As New ADODB.Command 这个有什么用吗,SQL里的命令不是全都在rs.open里执行了吗,还用的着它吗?

解决方案 »

  1.   

    把兩個sql語句合成一個sql語句就可以了,不用傳遞參數,那樣麻煩。
    sql="insert into table1(field1,field2......) select (field1,field2......) from table2"table1和table2的字段要對應。
      

  2.   

    数据库中都有自增类型,
    rs.open "insert into 表 vluaes(" & id & ",'adf','adfadf')",conn,1,1
    定义一个窗体变量,每次增加1就可以了//还有我定义了一个Public cmd As New ADODB.Command 这个有什么用吗,SQL里的命令不是//全都在rs.open里执行了吗,还用的着它吗?
    主要执行存储过程,看
    http://blog.csdn.net/online/archive/2004/08/05/66376.aspx
      

  3.   

    SQL里的命令不是//全都在rs.open里执行了吗,还用的着它吗?//晕倒,真正的执行还是要连接的呀,不管你怎么用,不管是Recordset还是Command,不是都使用了SQL的连接吗?
    执行存储过程,也可以使用连接就搞定的呀~~
    数据库中都有自增类型,
    rs.open "insert into 表 vluaes(" & id & ",'adf','adfadf')",conn,1,1
    定义一个窗体变量,每次增加1就可以了
    //上面的根本不需要,难道把插入的语句进行修改不是更好吗?
    rs.open "insert into 表 (Col2,Col3)vluaes('adf','adfadf')",conn,1,1'假设Col1为ID,那么写入的时候忽略不就可以了吗?
    SQL Server会自动写的,除非你要在程序中维护一个全局的ID变量,那么你最好用连接或者Command执行插入,然后可以直接返回是不是插入成功的信息,修改这些变量。