本人刚刚接触VB!如何对数据库进行增删改查操作!请各位大虾指点。

解决方案 »

  1.   

    感谢你能帮助我!! 我刚刚接触不会连接!  我是玩java的,现在需要vb。
      

  2.   


    '需引用 Microsoft ActiveX Data Objects 2.X Library
    Sub aaa()
        Dim cnn As ADODB.Connection, SQL As String
        
        '链接数据库
        Set cnn = New ADODB.Connection
        With cnn
            .Provider = "microsoft.jet.oledb.4.0"
            .Open "你的数据库"
        End With
        
        SQL = ""
        cnn.Execute SQL    '增加记录
        SQL = "Insert Into 表名称 (字段名1,字段名2,.....) Values (值1,值2,......)"
        cnn.Execute
        
        '删除记录
        SQL = "DELETE From 表名称 Where {条件}"
        cnn.Execute
        
        '查找记录
        SQL = "Select 字段名1,字段名2,.... From 表名称 Where {查找条件}"
        cnn.Execute    '修改记录
        SQL = "UPDATE 表名称 SET 字段名 = 值1, 字段名2 = 值2,…… Where {条件}"
        cnn.Execute    '关闭数据库
        cnn.Close
        Set cnn = Nothing
    End Sub就是 SQL 语句的用法
      

  3.   

    'Select Select_list
    '[ INTO new_table ]
    'From table_source
    '[ Where search_condition ]
    '[ GROUP BY group_by_expression ]
    '[ HAVING search_condition ]
    '[ ORDER BY order_expression [ ASC | DESC ] ]'CopyFromRecordset方法的使用说明
        'expression.CopyFromRecordset(Data, MaxRows, MaxColumns)
        'expression : 必需。该表达式返回一个 Range 对象。
        'Data : Variant 类型,必需。复制到指定区域的 Recordset 对象。
        'MaxRows : Variant 类型,可选。复制到工作表的记录个数上限。如果省略该参数,将复制Recordset对象的所有记录
        'MaxColumns : Variant 类型,可选。复制到工作表的字段个数上限。如果省略该参数,将复制Recordset对象的所有字段
        '说明:复制从 Recordset 对象的当前行开始的内容。复制完成之后,Recordset 对象的 EOF 属性值为True'Where的功能就是根据后面的条件,限制与筛选Selet检索的数据,而条件中又可以分为几种:
        '1.运算符。>,<,=,>=,<=,<>
            'Select 进仓日期,物品名称,进仓数量 From 进仓表 Where 物品名称='铅笔'
        '2.Or 与 And
            'Select 进仓日期,物品名称,进仓数量 From 进仓表 Where 物品名称='铅笔' And 日期=#2008-10-2#
        '3.Between…And
            'Select 进仓日期,物品名称,进仓数量 From 进仓表 Where 进仓数量 Between 3 and 6
        '4.In。通过In 列出所有可能的值
            'Select 进仓日期,物品名称,进仓数量 From 进仓表 Where 物品名称 In ('铅笔','毛笔','钢笔')
        '5.Like。通过Like与通配符,列出符合的条件。通配符有%,_,[]三种,不同的数据库可能支持不一样
            'Select 进仓日期,物品名称,进仓数量 From 进仓表 Where 物品名称 Like '铅%'    检索出物品名称以铅为开头的数据
            'Select 进仓日期,物品名称,进仓数量 From 进仓表 Where 物品名称 Like '_笔%'   检索出物品名称以任一一个字符+笔为开头
            'Select 进仓日期,物品名称,进仓数量 From 进仓表 Where 物品名称 Like '[钢,圆珠,毛]%'   检索出物品名称以钢,圆珠,毛为开头'SQL函数 -预处理检索值的命令
        'Sum:对检索的数值求和
        'Avg:对检索的数据求平均值
        'Min:求检索出数据的最小值
        'Max:求检索出数据的最大值
        'Count:求检索数据中非空的个数'Group By - 分类汇总检索的数据
        'Select 条件列名1, 函数(汇总列名1) From 表格名 GROUP BY 条件列名1,条件列名2,条件列名3...
        '条件列与汇总列都可以有一个或者多个,而汇总列名应该是可以让指定函数的计算类型。
        '如果要在Select中列举出来,一定要在 GROUP BY 作为条件列出现,否则就会出错。
        '但在GROUP BY 作为条件的列,不一定需要在Select中一一列举出来。'Having - 筛选汇总后的数据
        'Select 条件列名1, 函数(汇总列名1) From 表格名 GROUP BY 条件列名1 HAVING (函数条件)
        'Having后面出现的函数条件,应该在Selet中有列出来的,否则会出错。'Order By - 排序检索的数据
        'Select 列名1,列名2…… From 表格名 ORDER BY 排序列名 [ASC|DESC]
        '排序列名可以是多列,与检索的列名一样,用“,”分开。'Select Into - 把检索的数据添加到新的数据表中
        'Select 列名1,列名2…… INTO 新表格名 From 表格名
        '新表格名在数据库中应该是不存在的,否则就会出错。'Insert Into Select - 批量添加数据到数据库中
        'INSERT INTO 表格名1 (列名11,列名12, ...) Select 列名21, 列名22, ... From 表格名2
        '把检索出来的数据,批量添加到数据库中,目标表名在数据库中一定要存在的。'Top - 限制检索结果的数量
        'Select Top 数量 列名1,列名2,…… From 表格名 [Order By 排序列名1,排序列名2,…… [Asc|Desc]]'Distinct - 筛选出不重复的数据
        'Select Distinct 列名 From 表格名'CREATE TABLE - 创建数据表
        'CREATE TABLE 表格名(列名1 列名1的数据类型,列名2 列名2的数据类型,... )'DROP TABLE - 删除数据表
        'DROP TABLE 表格名'Alter Table - 修改数据表
        '增加列:Alter Table 表格名 Add Column 列名 列名的数据类型
        '删除列:Alter Table 表格名 Drop Column 列名
        '修改数据类型:Alter Table 表格名 Alter Column 列名 列名的数据类型'INSERT INTO - 向数据库中添加数据
        'INSERT INTO 表格名 (列名1, 列名2, ...) VALUES (数值1, 数值2, ...)
        '日期数值的表示方式为——#日期#,否则不正确'UPDATE - 修改数据库中已有的数据
        'UPDATE 表格名 SET 列名1 = 数值1, 列名2 = 数值2,…… Where {条件}
        'UPDATE如果不指定条件,则会修改指定数据表中所有的数据,而指定条件后,则后修改数据表中所有满足条件的数据'DELETE From - 删除数据库的数据
        'DELETE From 表格名 Where {条件}
    'Union 运算符
        'UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。
        '当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。
        '两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。'EXCEPT 运算符
        'EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。
        '当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。'Intersect 运算符
        'INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。
        '当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。'使用外连接
        '例子:Select a.a, a.b, a.c, b.c, b.d, b.f From a LEFT OUT JOIN b ON a.a = b.c
        '1.LEFT (OUTER) JOIN
            '左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。
        '2.RIGHT (OUTER) JOIN
            '右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。
        '3.FULL/CROSS (OUTER) JOIN
            '全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。'excel使用sql中的JOIN,以下几种形式能用:
        'Select * From `表1$` a,`表2$` b Where a.`aaa`=b.`a2`
        'Select * From `表1$` a INNER JOIN `表2$` b on a.`aaa`=b.`a2` Where 1=1
        'Select * From `表1$` a LEFT JOIN `表2$` b on  a.`aaa`=b.`a2`
        'Select * From `表1$` a RIGHT OUTER JOIN `表2$` b on a.`aaa`=b.`a2`    'FULL JOIN报无法打开数据库, 原因不明:
            'Select * From `表1$` a FULL JOIN `表2$` b
        '不过可以用From a,b,这就行了,一个意思.    'JOIN形式必须有ON , 且必须使用JOIN两边的表的字段
            'LEFT OUTER JOIN及RIGHT OUTER JOIN中的OUTER可以省
        'INNER JOIN中的INNER不能省'"WHERE 1=1" 表示选择全部
    '"WHERE 1=2" 表示全部不选
      

  4.   

    z_wenqian
    谢谢你!    那么要在一个按钮空间里点击增删改查怎么弄呢。
      

  5.   

    重点在Sql语句的掌握上
    看看这个
      

  6.   

    ADO对象操作数据库
      

  7.   

    ORA-12514:TNS:listener does not currently know of service requested in connect descriptor   连接数据源报这个错??
      

  8.   

    你需要学 2 个东西:1 ADO 数据对象的 Connection(连接)对象和 Recordset(记录集)对象  Connection:
      * Set 方法
      * Open 方法
      * Close 方法
      * Execute 方法(可选)  Recordset:
      * Set 方法
      * Open 方法
      * Close 方法2 SQL 语句  查询、增、删都是在 SQL 命令中实现的。这部分与 VB 无关,只要用数据库,哪一平台都一样。  在记录集对象的 Set 或 Open 方法中,传入相应的 SQL 语句即可。
      

  9.   

    做数据库,拉控件,ADODC。
    功能很弱,怪微软,更新不积极。
      

  10.   

    vb操作ora用oo4o好一点。你这个不是监听器配置错误,就是VB连接串数据库名给错了。VB连接ORA和JAVA一个B样,就是关键字换个名。
      

  11.   

    VB访问ORACLE数据库可以用ADO的方法,也可以使用OO40等。如果是ADO,必须安装配置ORACLE客户端,才能在客户端上远程访问ORACLE,当然,连接字符串也要写的正确。
    只要连接上了数据库,后面的增删改查这类东西,任何语言都差不多,你就用SQL操作就可以了。