VB实现ACCESS数据库记录的查询,新增,删除,修改,保存

我采用的是ADO和datagrid1控件,已有字段:
字段1(DTPicker1)
字段2(text)
------
------
字段11(text)
字段12(DTPicker1)
------
字段18(text)
各位大吓可以帮我写下代码发我邮箱吗?twtydn@163.com,谢谢!

VB实现ACCESS数据库记录的查询,新增,删除,修改
在“创建”选项卡上的“其他”组中,单击“查询设计”。
在“显示表”对话框中,单击“查询”选项卡,然后双击“产品订单数”。
关闭“显示表”对话框。
双击“产品 ID”字段和“订单日期”字段,以将这些字段添加到查询设计网格。
在该网格的“产品 ID”列的“排序”行中,选择“升序”。
在该网格的“订单日期”列的“排序”行中,选择“降序”。
在该网格的第三列中,右键单击“字段”行,然后单击快捷菜单上的“显示比例”。
在“显示比例”对话框中,键入或粘贴以下表达式:

Prior Date: (SELECT MAX([Order Date])
FROM [Product Orders] AS [Old Orders]
WHERE [Old Orders].[Order Date]
< [Product Orders].[Order Date]
AND [Old Orders].[Product ID]
= [Product Orders].[Product ID])

此表达式是子查询。对于每一行,该子查询都会选择略早于已经与此行建立联系的订单日期的最近的订单日期。请注意如何使用 AS 关键字创建表别名,以便将子查询中的值与主查询的当前行中的值进行比较。

在该网格的第四列的“字段”行中,键入以下表达式:
Interval: [Order Date]-[Prior Date]此表达式使用通过子查询定义的前一个日期的值计算该产品的每个订单日期与前一个订单日期之间的时间间隔。
在“设计”选项卡上的“结果”组中,单击“运行”。
该查询将运行,并显示一个列表,列表中包含产品名称、订单日期、前一个订单日期以及订单日期之间的时间间隔。结果先按照“产品 ID”(升序)、再按照“订单日期”(降序)进行排序。

注释 因为“产品 ID”在默认情况下是查阅字段,所以 Access 会显示查阅值(在这种情况下是产品名称)而不是实际的“产品 ID”。尽管这样会更改显示的值,但不会更改排序顺序。

关闭罗斯文数据库。
返回页首

将子查询用作查询字段的条件
可以将子查询用作字段条件 (条件:所指定的限制查询或筛选的结果集中包含哪些记录的条件。)。如果要使用子查询的结果限制字段所显示的值,则可以将子查询用作字段条件。

例如,假设您要查看由非销售代表员工处理的订单列表。要生成此列表,需要将每个订单的员工 ID 与非销售代表员工的员工 ID 列表进行比较。要创建此列表并将其用作字段条件,可以使用子查询,如下面的步骤所示:

打开 Northwind 2007.accdb 并启用其内容。
关闭登录窗体。
在“创建”选项卡上的“其他”组中,单击“查询设计”。
在“显示表”对话框的“表”选项卡上,双击“订单”和“员工”。
关闭“显示表”对话框。
在“订单”表中,双击“员工 ID”字段、“订单 ID”字段和“订单日期”字段,以将其添加到查询设计网格中。在“员工”表中,双击“职务”字段以将其添加到设计网格。
右键单击“员工 ID”列的“条件”行,然后单击快捷菜单上的“显示比例”。
在“显示比例”框中,键入或粘贴以下表达式:

IN (SELECT [ID] FROM [Employees]
WHERE [Job Title]<>'Sales Representative')
这是子查询。它选择其职务不是销售代表的员工的员工 ID,并且将结果集提供给主查询。主查询随后会检查“订单”表中的员工 ID 是否在该结果集中。
在“设计”选项卡上的“结果”组中,单击“运行”。
该查询将运行,并且查询结果显示由非销售代表员工处理的订单列表。
返回页首

可在子查询中使用的常见 SQL 关键字
在子查询中可以使用的几个 SQL 关键字为:

注释 此列表并不详尽。您可以在子查询中使用任何有效的 SQL 关键字,数据定义关键字除外。

ALL 在 WHERE 子句中使用 ALL,可以检索在与子查询返回的每个行进行比较时满足条件的行。
例如,假设您要分析一所大学中的学生数据。学生必须维持最低 GPA,它随着专业的不同而不同。“专业”和“最低 GPA”存储在名为 Majors 的表中,相关的学生信息存储在名为 Student_Records 的表中。

要查看相应专业中的每个学生都超过了最低 GPA 的专业(及其最低 GPA)的列表,可以使用以下查询:

SELECT [Major], [Min_GPA]
FROM [Majors]
WHERE [Min_GPA] < ALL
(SELECT [GPA] FROM [Student_Records]
WHERE [Student_Records].[Major]=[Majors].[Major]);
ANY 在 WHERE 子句中使用 ANY,可以检索在与子查询返回的至少一行进行比较时满足条件的行。
例如,假设您要分析一所大学中的学生数据。学生必须维持最低 GPA,它随着专业的不同而不同。“专业”和“最低 GPA”存储在名为 Majors 的表中,相关的学生信息存储在名为 Student_Records 的表中。

要查看相应专业中的任何学生都未达到最低 GPA 的专业(及其最低 GPA)的列表,可以使用以下查询:

SELECT [Major], [Min_GPA]
FROM [Majors]
WHERE [Min_GPA] > ANY
(SELECT [GPA] FROM [Student_Records]
WHERE [Student_Records].[Major]=[Majors].[Major]); 注释 您还可以使用 SOME 关键字达到同样的目的;SOME 关键字与 ANY 关键字意义相同。

EXISTS 在 WHERE 子句中使用 EXISTS 可以指示子查询至少应该返回一行。您还可以添加 NOT 作为 EXISTS 的前缀,以指示子查询不应该返回任何行。
例如,以下查询返回在至少一个现有订单中存在的产品的列表:

SELECT *
FROM [Products]
WHERE EXISTS
(SELECT * FROM [Order Details]
WHERE [Order Details].[Product ID]=[Products].[ID]);
如果使用 NOT EXISTS,则该查询返回在现有所有订单中都不存在的产品的列表:

SELECT *
FROM [Products]
WHERE NOT EXISTS
(SELECT * FROM [Order Details]
WHERE [Order Details].[Product ID]=[Products].[ID]);
IN 在 WHERE 子句中使用 IN 可以验证主查询的当前行中的某个值是子查询返回的结果集的一部分。您还可以添加 NOT 作为 IN 的前缀,以验证主查询的当前行中的某个值不是子查询返回的结果集的一部分。
例如,以下查询返回由非销售代表员工处理的订单(以及订单日期)的列表:

SELECT [Order ID], [Order Date]
FROM [Orders]
WHERE [Employee ID] IN
(SELECT [ID] FROM [Employees]
WHERE [Job Title]<>'Sales Representative');
通过使用 NOT IN,可以按照以下方式编写同一查询:

SELECT [Order ID], [Order Date]
FROM [Orders]
WHERE [Employee ID] NOT IN
(SELECT [ID] FROM [Employees]
WHERE [Job Title]='Sales Representative');
温馨提示:内容为网友见解,仅供参考
第1个回答  2020-04-25
“修改”按钮的程序
Private
Sub
cmdEdit_Click()
sql
=
"select
*
from
停时统计
where
date
=
cdate('"
&
Text8
.Text
&
"')
and
ycqk
=
'"
&
Combo1.Text
&
"'and
id
=
'"
&
DataGrid1.Columns(2).CellText(DataGrid1.Bookmark)
&
"'"
rs.Open
sql,
dm,
adOpenDynamic,
adLockOptimistic
rs.Fields("id")
=
Text7
.Text
rs.Fields("ycqk")
=
Combo1.Text
rs.Fields("date1")
=
Text1
.Text
rs.Fields("
time1
")
=
Text2
.Text
rs.Fields("date2")
=
Text3
.Text
rs.Fields("
time2
")
=
Text4
.Text
rs.Update
rs.Close
End
Sub
'“删除”按钮的程序
Private
Sub
cmdDelete_Click()
strFCode
=
DataGrid1.Columns(0).CellText(DataGrid1.Bookmark)
strSCode
=
DataGrid1.Columns(2).CellText(DataGrid1.Bookmark)
strCCode
=
DataGrid1.Columns(1).CellText(DataGrid1.Bookmark)
sql
=
"select
*
from
停时统计
where
date='"
&
strFCode
&
"'
and
id='"
&
strSCode
&
"'
and
ycqk='"
&
strCCode
&
"'"
rs.Open
sql,
dm,
adOpenDynamic,
adLockOptimistic
rs.Delete
rs.Update
rs.Close
End
Sub
'“增加”按钮的程序
Private
Sub
Command1_Click()
sql
=
"select
*
from
停时统计
order
by
id"
rs.Open
sql,
dm,
adOpenDynamic,
adLockOptimistic
rs.AddNew
rs.Fields("date")
=
Date
rs.Fields("id")
=
Text7.Text
-
1
rs.Fields("ycqk")
=
Combo1.Text
rs.Fields("date1")
=
Text1.Text
rs.Fields("time1")
=
Text2.Text
rs.Fields("date2")
=
Text3.Text
rs.Fields("time2")
=
Text4.Text
rs.Update
rs.Close
With
Adodc1
Adodc1.ConnectionString
=
"Provider=Microsoft.Jet.OLEDB.4.0;Data
Source="
&
App.Path
&
"\
db1
.mdb;Persist
Security
Info=False"
Adodc1.RecordSource
=
"select
*
from
停时统计
where
date
=
cdate('"
&
Text8.Text
&
"')
and
ycqk
=
'"
&
Combo1.Text
&
"'
order
by
id"
Adodc1.Refresh
DataGrid1.Refresh
End
With
End
Sub
第2个回答  2019-05-02
新增:adodc1.addnew
查询:用select
<字段名表>
form
<数据表名称或视图名称>[where<条件表达式>][group
by<字段名1>][order
by<字段名2>]
修改:先打开数据表然后更新表,更新:adodc1.undatecontrols
保存:adodc1.updatebatch
删除:adodc1.delete
第3个回答  2009-06-03
新增,删除,修改,保存不是VB的问题
而是SQL语句的问题.本回答被提问者采纳

请教:VB实现ACCESS数据库记录的查询,新增,删除,修改,保存
打开VB,新建一个标准工程 在外接程序,可视化数据管理器菜单上点一下打开.然后在新窗品中 文件-打开数据库-ACCESS 注意,这个由于开发的较早,只能打开早期版本的MDB文件,如您是ACCESS2000后的版本您要先转换一下,方法是在ACCESS中打开它,然后在菜单工具,数据库实用工具进行转换,系统做好后,再转回来仍然...

VB实现ACCESS数据库记录的查询,新增,删除,修改的代码是什么?
“修改”按钮的程序 \\x0d\\x0aPrivate Sub cmdEdit_Click() \\x0d\\x0asql = "select * from 停时统计 where date = cdate('" & Text8.Text & "') and ycqk = '" & Combo1.Text & "'and id = '" & DataGrid1.Columns(2).CellText(DataGrid1.Bookmark) & "'" \\x0d\\x0a...

...view中添加,删除,修改记录并保存到access数据库,求代码
一般是将access数据库绑定到datagridview中,要添加数据只需要datagridview1.Item(3, 0).Value=XXX这种就行了,删除修改同理。保存到access是你已经有了一个access表吧?不然字段都要新建的。如果要保存到数据库的话就调用sql语句链接数据库了,我找个以前的代码 Dim OleDbConn As OleDbConnection = ...

VB编程如何实现ACCESS数据库记录的查询?
删除数据库记录的步骤与新增记录类似,主要涉及创建命令对象和执行SQL删除语句。具体步骤如下:创建ADO连接对象并建立与数据库的连接。 创建一个命令对象,并设置其类型为“删除”。 在命令对象中编写SQL删除语句,例如:`"DELETE FROM Students WHERE Age = '99'"`。 执行命令对象,完成记录的...

VB创建一个应用程序,能对Access数据库文件中的数据进行增、删、改和...
删除:docmd.RunSQL "delete from dehz"增加:docmd.RunSQL "INSERT INTO lsde (图号, 组件号, ) SELECT [zqd]![图号] AS 表达式1, 定额.组件号, FROM zqd INNER JOIN 定额 ON zqd.组件号 = 定额.组件号 WHERE ((([定额]![组件号])=[zqd]![组件号])) ORDER BY [zqd]![图号...

VB实现ACCESS数据库MSHFlexGrid1记录的查询,新增,删除,修改_百度...
用mshflexgrid1控件的listindex属性移动数据库数据指针,然后执行删除操作。你连接数据源是用的什么?

vb编写学生基本信息实现access数据库的增删改查
1)首先需要用Office软件中的Access软件建立一个学生基本信息数据库。表中新建几个表,可以是学生名册表,学生各专业课程分数登录表等等。2)VB新建数据工程,此时VB6集成调试环境左边工具箱内已加载了有关数据库编程必须的控件。3)然后在FORM1窗体中添加ADO数据控件,右键-ADODC1控件属性页-使用连接字符串...

vb如何删除access数据库指定记录?
首先定位到这条记录,用recordset的find方法或者直接select返回该条记录,然后使用delete删除,修改的话直接改,之后update一下就可以了。

VB如何用ADO向ACCESS数据库插入和修改记录?
1、Microsoft Access窗口中,选择文件菜单中的打开选项,打开一个已有的数据库。2、数据库中有两张表格,如下图所示。3、数据库中,表格学生信息是课程成绩的子表。4、如果直接在子表中插入记录,会提示不能添加或修改。5、其实,只需在主表中,插入相关的主键和记录。6、接着,就可以在子表中插入...

如何在VB中对access数据库新增列
1楼为修改列值,错误。增加或删除列得用以下语句:ALTER TABLE table_name ADD column_name datatype ALTER TABLE table_name DROP COLUMN column_name

相似回答