| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3730 人关注过本帖
标题:[求助]一个用VB调用ACCESS数据库的问题
只看楼主 加入收藏
小山丘之王
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2004-5-20
收藏
 问题点数:0 回复次数:8 
[求助]一个用VB调用ACCESS数据库的问题
我用Data控件连接的数据库

怎么才能按条件搜索我需要的记录,并把其中一个字段的值付给变量。

还有一个问题是DBGrid控件可以同时显示两个表的内容吗? 两个表是有关联的,而且我只要它显示两个表中的某几个字段就可以了。

搜索更多相关主题的帖子: 数据库 ACCESS 
2004-05-20 22:14
griefforyou
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:3336
专家分:0
注 册:2004-4-15
收藏
得分:0 
说实话,我自学VB以来就没用过Data控件、DBGrid控件,所以我帮不了你!

天津网站建设 http://www./
2004-05-20 22:47
随意魔
Rank: 1
等 级:新手上路
帖 子:184
专家分:0
注 册:2004-5-13
收藏
得分:0 
我也说实话,
我也很少用Data控件

.-_-.曾经拥有.足以泪流.-_-.
2004-05-21 10:03
小山丘之王
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2004-5-20
收藏
得分:0 
都不用DATA控件那你们用什么连接数据库?ADO DATA控件?还是直接用代码连?
2004-05-21 10:06
javac
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2004-6-21
收藏
得分:0 

a=adodc1.recordset.field("fielsname")

2004-06-21 13:42
iaishina_2
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2004-9-27
收藏
得分:0 
怎么连库

2004-09-30 09:53
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 

用adodb控件,这个控件运行时不会显示出来但可以引用。全称Microsoft ActiveX Data Objects 2.5 Library。

连接方法是先引用。

然后生命如下的连接对象。

Dim con As New ADODB.Connection

该连接对象有一个连字符串属性息属性

con.ConnectionString

而连接字符串比较长如果不愿意写也可以临时建立一个adodc的空间,用控件属性中的生成字符串来自动生成连接字符串。

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\BOOK.MDB;Persist Security Info=False

以上为mdb的连接字符串示例,也可以生成sql sever的连接信息,非常简单。建立一个adodc控件拖拽到窗体上。然后左键单击adodc控件,选属性里面最后一项就是生成连接字符串。

连接字符串的完整设置代码如下(注意别忘了“”和最后的;)。

con.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\BOOK.MDB;Persist Security Info=False;"

利用con.Open的方法打开数据库。

con.ConnectionTimeout设置数据库连接超时时间多长时间随意(不设置的化程序会永远尝试连接数据库,而导致死循环)。

con.State验证数据库是否连接成功这个返回布尔值真(true)和假(false)。

con.Execute("T-SQL语句"),此方法用于执行SQL语句返回结果可以附值给其它的变量或给文本框直接显示。

以上是连接数据库的方法。

[此贴子已经被作者于2004-10-03 22:56:54编辑过]

2004-10-03 22:55
joinfly
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2004-10-1
收藏
得分:0 

Imports System.Data.OleDb '引入ADO.NET操作命名空间 Module Module1 Public ADOcmd As OleDbDataAdapter Public ds As DataSet = New DataSet() '建立DataSet对象 Public mytable As DataTable '建立表单对象 Public myrow As DataRow '建立数据行对象 Public rownumber As Integer '定义一个整型变量来存放当前行数 Public SearchSQL As String Public cmd As OleDbCommandBuilder

Public Function Testtxt(ByVal txt As String) As Boolean '判断字符串是否为空 If Trim(txt) = "" Then Testtxt = False Else Testtxt = True End If End Function

Public Function ExecuteSQL(ByVal SQL As String, ByVal table As String) Try '建立ADODataSetCommand对象 '数据库查询函数 Dim constr As String constr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" constr = constr & Application.StartupPath() & "\student.mdb" ADOcmd = New OleDbDataAdapter(SQL, constr) '建立ADODataSetCommand对象

ds.Clear() ds.Tables.Clear() '清除数据集中的所有表

ADOcmd.Fill(ds, table) '取得表单

mytable = ds.Tables.Item(0) '取得名为table的表 rownumber = 0 '设置为第一行 myrow = mytable.Rows.Item(rownumber) '取得第一行数据 Catch MsgBox(Err.Description) End Try End Function

End Module

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim tablename As String tablename = "userID" '表的名称 SearchSQL = "SELECT 用户名, 密码 FROM userID WHERE (用户名 = '" & TxtUserName.Text & " ') " Try Module1.ExecuteSQL(SearchSQL, tablename) '查询函数 If Module1.myrow.Item(1) = TxtUserPassword.Text Then '比较输入密码和数据库的密码 Module1.myrow.Item(1) = TxtNewPassword.Text Module1.mytable.GetChanges() Module1.cmd = New OleDbCommandBuilder(Module1.ADOcmd) '使用自动生成的SQL语句 Module1.ADOcmd.Update(Module1.ds, tablename) '对数据库进行更新 MsgBox("密码修改成功!", vbOKOnly + vbExclamation, "警告") Me.Hide() Else Exit Sub End If Catch MsgBox("没有该用户", vbOKOnly + vbExclamation, "警告") End Try End Sub

2004-10-03 23:35
griefforyou
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:3336
专家分:0
注 册:2004-4-15
收藏
得分:0 

.Net 都出来了呀


天津网站建设 http://www./
2004-10-04 00:31
快速回复:[求助]一个用VB调用ACCESS数据库的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017000 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved