admin 管理员组文章数量: 1184232
2024年3月19日发(作者:如何进行数据恢复)
维普资讯
_l0 ■ 1露
D l A聃ASE
拄i B+
摘要本文以学生档案数据库Studata为例,介绍利用ADO在VB+SQL Server 2000
系统中实现单项与多项条件查询的程序设计方法。
关键词数据库,ADO,查询,事件代码
一
、
刖吾
学生信息表
对数据库信息进行查询检索是数据库管理软件的主要功
字段名 数据类型 宽度
能,也是其难点之一。ADO(ActiveX Data Objects)是一种提
学号 char 8
供访问各种数据类型的连接机制。是当前非常流行的访问各种
姓名 vaT℃ha 50
数据库的方法。使用ADO之前必须先引用。方法为:从VB
性别 char 2
的“工程”菜单中,选择“引用”项,从库的列表中选择
班级 varehar 50
“Microsoft ActiveX Data Objects 2.8 Library”,单击“确
入学总分 lfoat 8
定”。便可使用ADO对象库提供的所有对象进行编程了。
本文以学生档案数据库为例,介绍在Visual Basic 6.0中
家庭电话 varchar l5
文版中,通过ADO对象模型访问SQL Se ̄er 2000数据库,对
家庭住址 varehar 40
数据库中的Students表进行各种查询及显示查询到的记录的实
出生年月 datefime 8
现方法。本程序包含一个数据库Studata,其中包含表Stu—
备注 varchar 500
dents。一个存放所有学生照片的文件夹Photo,一个标准模块
Module1.bas,一个查询主窗体FrmSearch.frm,一个单项条件
PUblic que ̄Str String 查询冬t件每符罱
设置窗体FrmSCondition.frm,一个多项条件设置窗体FrmM—
PubiJc cent As ADODB Connection 定义连接对敦变量
Con ̄tion.frm。
PUbliC 毫As ADODB Recor ̄et 是义记京煞碱象袭置
Public f ndstate As Boolean 是否是查询状态 默认值为否
二、数据库中的表及其字段
四、查询主窗体
假设学生档案数据库Studata已经生成(位于当前路径
查询主窗体FrmSearch.frm,用来显示Students表中所有记
下),库中有学生信息表Students,表中有若干条记录。为简
录或查询到的记录,同时显示相关记录的照片,如图1所示。
化说明,假设表中仅有如下字段,如右表所示。
1.该窗体上包含如下主要控件
另外为了存放所有学生的照片,在当前路径下建一文件夹
(1)一个图像框Imagel,用来显示照片。
Photo,在其中存放所有学生的个人照片,每副照片以.jpg文
(2)八个文本框,分别是txtld、txtName、txtSex、
件格式存放,为了读取方便,每个学生的照片文件名为其学
txtClass、txtScore、txtBirthday、txtAddress、txtTe1分别用来显示
号,即每个学生的照片文件全名格式为:学号.jpg。
学号、姓名、性别、班级、入学总分、出生年月、家庭住址和
三、标准模块的变量
家庭电话等字段的值。
(3)一个富文本框控件(RichTextBox),名称为Rtext1,
在标准模块(Module1.bas)中,定义全局变量如下:
用来显示个人简历,即备注字段的内容。
与
il ∥一一 t llll0 _ l 00 l
l ll
l l
00一 一0 lll0
_ ll10 J'| ll-
_ l ll l
|
? l i 尊 ; ||
维普资讯
譬 瑟慧 l慧 _
壤 熊一t驾鹗隔麓
氇 《r氇镱交 豁 遘l l精 0
l
ll_ ll l 蠹 。 I数
l_A聃ASj
(4)一个数据网格控件(MSFlexGrid),名称为Gridl,显
示所有记录或查询到的所有记录。
(5)八个命令按钮(CommandButton),名称分别为cmd—
Top cmdBottom cmdPre cmdNext cmdSfind cmdMfind
cmdCfind、cmdExit,分别用来显示第一条记录、最后一条记
录、前一条、后一条,以及显示单项条件设置窗体、多项条件
设置窗体、清除查询的条件和退出程序。
2.窗体的通用——声明段中的代码
Option Explicit
Dim rs2 As ADODB.Recordset 查询后的记录集
Dim sql As String 存放SELECT命令的字符串
3.窗体的Load事件过程代码
Private Sub Form上oad《)
On Error GoTo sql
_
error
Set cont=New ADODB.Connection
Set rs=New ADODB Recordset
cont.Open
Provider=SQLOLEDB,1l:Integrated Security=sSPI;Persist
Securiyt lnfo=False;UserlD=sa Initial Catalog studata;
Data Source=Izyds 连接SOL Server数据库,服务器名为
Izyds,用户名为sa
sql= select¥frOm students
rs.Open sq1 cont adOpenKeyseti adLockOptimistic
Grid1
.
Cols rs.Fields.Count
TextMatrix(O 0、 攀号
.
TextMatrix( 1】= 姓名
.
TextMatrix 0i 2、= 性 I
.
TeXtMatrix 3、= 班级 一
.
TextMatrix 4、: 入学 食 r
.
TextMatrix(o 51: 生年只
.
TextMatrix(0 : 家艇住址
-
砌x(01 京 隔 - -
.
1'extMatri ̄( 81: 备{
 ̄
ColWidth 、000 f; |
.
CoPZVidth 、毫1000
.
ColWidth 2\:500
.
ColWidth(3)= Q∞ |
.
CoIWidth(4、每10o0 |
.
ColWidth 黾、=、000 。
ColWidth 、毒撇 。
ColWidth 、= 10o0 -
.
Co ̄idth ::2000 .I
End 。
Id.Lock ̄;True 设置文苯框 只读
txtNamei L ̄ked暑 ue | i|l 。
 ̄tSex L ̄ked=True|-|
txtClass:Locked童True 。 i 。 |‘
MsgB(ox 查询错误: & Err.Descri ption
。
TextMatrix( Rows-、I 4、=rs 41
|
I
Grid Ref
res
h ||。 | || . | |I ||
E
nd Sub
s .Q 吼 牾幅锋_冬 I | 。| .
Priva te Sub LoadDatalnControIs rs As ADODB Recordset)
If rs.BOF=True Or rs.\EOF=True Then
End If 。|
txtId.Text rs.Fields("学号 Value—
txtName.Text篇 Fields 姓名").Value
txtSex.Text =俜 Fields(| ’、. |
txtClass.Text;rs.Fi e\{ 斑级 、.。Valuet 一
txtScore,Text…=rs.Fields(".,k,. 余 ).Value| |
txtBirthday.T t未}S 氧 ?她茔年 ’、.Value
txtAddre
。
ss,Text专 家寝洼 !. a . |:
txtTe1.Text警 Fields( 家庭电话 Value ÷ | |
rtext1.Text=rs.Fields 备注-1。 a\、l色 |I | |
Image1.Picture j:LoadPicture(App.P蠢t1.|_+"\photo\"+
维普资讯
1) l B人S
If rs2 EOF=TrueThen
rs2.MoveLast
MsgBox 已到查询到的尾记录 ,64
End If
Call LoadData InControls(rs2)
End If
End Sub
9.“前一条”命令按钮的单击事件过程代码
Private Sub cmdPre_Click()
If ifndstate=FaIse Then 不是查询状态
s MovePrevious
If r Sl BOF=True Then
MsgBox 已到首记录 ,64
图1
俺.MoveFirst
End
txtld.Text+ .jpg } 照片文件名格式为:学号.jPg
Call Load DataInControls(rS)
End Sub
EIse 是查询状态
6.“首记录”命令按钮的单击事件过程代码
rs2.MovePrevious 不是查询状态
Private Sub cm ̄op_CIick(
lf rs2.BOF=TrueThen
If findstate=False Then 不是查询状态 则显示表中所有记
MsgBox 已到查询到的酋记录 6辱
录的第一条记录
rs2.MoveFirst |
rs.MoveFirst
If
Call LOadDataInCOntrOIs(rs)
CaI ILoadDataInControls(rs2)
Else 是查询状态,则显示查询到的记录集中的第一条记录
End¨f
rs2.MoveFirst
End Sub
Call LoadDatal nControls(rs2)
1O.“单项查询”命令按钮的单击事件过程代码
End If
Private Sub cmdSFind_Click()
End Sub
On Error GoTo errdo
7.“尾记录”命令按钮的单击事件过程代码
msq\As String
Private Sub cmdBottom
Cl ̄ck(、
Set rS2=New ADODB.Recordset
_
If findstate=True Then 是查询状态
findstate=TrMe
rs2.MoveLast
frmScondition.Show vbModaI
CaIl LoadDataInContfols(rs2)
IfqueryStr= Then ExitSub 查询窗体中单击了取消键
EIse 不是查询状态
sql= 8elect from students where &queryStr
鸭.MoveLast
rs2.Open sq1.cont adOpenKeyset,adLockOptimistic
ColI LoadDatalnControls(rs)
If rs2.EOF=True And rs2 BOF=True Then
End
MsgBox 没有符合条件的记录
End Sub
Exit Sub
8.“后一条”命令按钮的单击事件过程代码
End If
Private Sub cmdNext_C¨c k()
LoadDataInControls『S2 在文本框中显示查询到的第—条记录
If findstate=FaIse Then 不是查询状态
loadrsdata rs2 在表格申显示查询到的所有记录l l
Exit Sub
【s.MoveNext 。 。
If rs:EOF=True Then
errdo1
rs.MoveLast
MsgBox Error(Err)。vbCmIcaI, 单项信息查询
End Sub
MsgBox 已到尾记录 ,64
End If
11.“多项查询”命令按钮的单击事件过程代码:
Col、LoadDataInControls rs)
Private Sub cmdMfind_Click
EIse
On Error GoTo errdo
rs2.MoveNext| E|。
frmMcondition.Show vbModal 。
Dim so lAsString|| 一
与
维普资讯
{% 0 ■
蓑麓错一翻誓 密壤
撬.霹
l A酶AS
Set rs2=New ADODB.Recordset
findstate=True
If queryStr=~Then Exit Sub 查询窗体中单击了取消键
sql= select女from students where &queryStr
rs2.Open sqI,cont,adOpenKeyset,adLockOptimistic
If rs2.EOF=TrueAnd rs2..BOF=Truemen
MsgBox 没有符合条件的记录
ExitSub
EndIf
LoadDatalnControls rs2 在文本框中显示查询到的第-条记录.
Ioadrsdata rs2 在表格中显示查询到的所有记录
Exit Sub
errdO:
图2
MsgBox Error(Err).vbCritical, 多项信息查询
End Sub
(3)两个命令按钮(CommandButton),名称分别为Cm-
dOk和CmdCancel。
12.“清除条件”命令按钮的单击事件过程代码
Private Sub cmdCfind Click()
重新在表格和文本框中显示所有记录
query,Str=
findstate=False
-
2.窗体的Load事件过程代码
在组合框CmbSearItem和CmbRelation中发别添加查询项目
字段名称和关系运算符。
Private Sub Form_Load()
DIm iAs Integer
queryStr=
For =0 To rs.Fields.Count一2
LoadDatalnControls rs
Ioadrsdata rs
Set rs2=Nothing
End Sub
13.“退出”命令按钮的单击事件过程代码
Private Sub cmdExit
Click()
_
添加除备注宇段以外的所有字段名称
cmbSearltem.Addlteml rs.FieldS(.)l Name
Next
End
Set rs=Nothing
Set rs2=Nothing
Set cont=Nothing
End Sub
。 -
cmbSearItem.ListIndex=0
cmbRelation.Add Item =。
cmbRelation.AddItem >l_
CmbRelation.AddItem >
cmbRelation.Addltem 《
cmbReIation.Addltem <=
五、单项查询条件
在查询主窗体中单击“单项查询”命令按钮后,显示单项
条件设置窗体(FrmScondition.frm),如图2所示。在该窗体
cmbRelation.AddItem 《>^
cmbRelation.Addltem"like
cmbRelation Listlndex=O
txtfindvalue.Text=~
cmbFindvalue.Visible
End Sub
False
中选择要查询的字段、运算符和查询的值,单击“确定”后,
该窗体消失,在查询主窗体中显示查询到的记录。单击“取
消”时,该窗体消失,不进行查询。
1.该窗体上包含如下主要控件
(1)三个组合框(ComboBox),名称分别为Cmb.
Searltem、CmbRelation、CmbFindvalue(隐藏)。分别用来显示
要查询的字段和关系运算符“=、<、>、<>、<=、>=、
3.单击组合框cmbSearItem时的单击事件过程代码
当查询项目为“性别”或“班级”时,能在组合框
CmbFindvalue中显示“男”和“女”或表中所有班级字段值,
供用户选择。
Private Sub cmbSearltern_Click()
D{m rsclasshame As ADODB.Recordset
Like(包含)”。当选择查询项目“性别”和“班级”时,组
合框CmbFindvalue显示。
(2)一个文本框(TextBox),名称为TxtFindvalue。用来
输入查询的值。当选择查询项目“性别”和“班级”时,该文
本框隐藏,选择其它查询项目时,该文本框显示。
用来在查询信息后的组合框中添加班级宇段值
Dim sqlAs stri嗵
On Error GoTo errdo
set sclassname;New ADODB ReCordset
维普资讯
}1)A1.A AS
sql="select distinct班级from students
queryStr=Trim(cmbSearltem.Text)&Trim
rsclassname.0pen sql,cont,adOpenKeyset,adLockOo
.
ti—
(cmbRelation.Text J& &findStr&
mistic
Case 学号 , 姓名 , 性别 , 班级 , 家庭住址 , 家
Select Case cmbSearltem..Text
庭电话
Case 性别
queryStr=Trim(cmbSearltem.Text)&Trim
cmbFindvalue.Visible=True
(cmbRelation.Text)& 一&findStr& 一
txtfinavalue.Visible=False
Case 入学总分
cmbFindvalue.Clear
queryStr=Trim(cmbSearItem.Text)&Trim
cmbFindvalue.Addltem 男
(cmbRelation.Text)& dstr
cmbFindvalue,Addltem 女
.
End Select
cmbFindvalue.Listlndex=0
End If
Case 班级
Me.Hide
cmbFindvalue.Visible:True
Exit Sub ’
txtfindvalue.Visible=False e| dQ
cmbFindvalue.CIear
MsgBox Error(Err),vbCritical, 单项条件查询
Do While Not rsclassname—EOF。
Resume Next
cmbFindvalue.Addltem rsclassname.FieIds(O).Value
End Sub
rsclassname.MoveNext
5.“取消”命令按钮的单击事件过程代码
LOOD
—
Private Sub cmdCancel_Click()
Set rsclassname=Nothing
queryStr=~
cmbFIndvalue.Listlndex=0
Me.Hide
Case EIse
End Sub
cmDFindvaIue.Visible=False
、
txtfindvalue.Visible=True
End Select
六、多项查询条件
Exit Sub ’
errdo:
在查询主窗体中单击“多项查询”命令按钮后,显示多项
MsgBox Error(Err),vbCritical, 单项条件查询
条件设置窗体(FrmMcondition.frm),如图3所示。在该窗体
Resume Next
中选择要查询的字段、运算符和查询的值,单击“添加查询条
End Sub
件”按钮后,添加条件到下面的表格中,在表格中选中一个条
4.“确定”命令按钮的单击事件过程代码
件后,单击“删除查询条件”,则从表格中将该条件删除,单
Private Sub cmdOk_Click()
On ErrorGoToerrdo
击“确定”按钮后,该窗体消失,在查询主窗体中显示查询到
Dim findStr As String 在文本框或组合框中输入或选择的信息
的记录。单击“取消”时,该窗体消失,不进行查询。
ClUeryStr=
1.该窗体包含如下主要控件
lf cmbFindvalue.Visible=True Then
(1)二个单选按钮(OptionButton),名称分别为OptAnd
ifndStr=embFindvalue.Text
和OptOr ,用来选择条件之间的关系运算符。一开始不可用,
Else
表格中添加一个条件后,变为可用。
If Trim(txtfindvalue.Text =~Thell
MjsgBox"请输入查询信息 vbCriticaI, 单项条件查询
(2)三个组合框(ComboBox),名称分别为Crab—
Exit Sub
SearItem、CmbRelation、CmbFindvalue(隐藏)。分别用来显示
End}f
要查询的字段和关系运算符“=、<、>、<>、<=、>:、
findStr=txtfindvalue.Text
Like(包含)”。当选择查询项目“性别”和“班级”时,组
End If
合框CmbFindvalue显示。
IfTrim(Left(cmbRelation.Text 4))= like"’Then
ClUeryStr=cmbSearltern.Text like & % find—
(3)一个文本框(TextBox),名称为TxtFindvalue。用来
Str& %一 LIKE两边有空格 通配符为%
输入查询的值。当选择查询项目“性别”和“班级”时,该文
EIse
本框显示,组合框CmbFindvalue隐藏。
SeIect Case Trim(cmbSearItem.Text)
(4)一个数据网格控件(MSFlexGrid),名称为Grid1。
Case 出生年月 日期型字段两边加愕
用来显示查询的条件。
与
糍%毽穗l。毫一u 警 强甏%强蠢 薄 毪强 甏I臻l誊ll蠹鬟骥§甏零舞赣嚣强甏毳|薯l《 缮 强垂%氍善|I魏 赣 疆程 誊赣辫罄l甍 氇|u强爨蠹鼍
l强 强 蕊 g爨强强警%津|l琵 强 罐毫薯 强 臻强拜|≯ ||§
维普资讯
%∞瓤麓j} 《筏|
l 00◇_ll l0lll_0 j 0 l I
ll 叠 | | ÷|繇 爨一鬻鞭强
|
jl | 撬一簿
llA AS
(5)四个命令按钮(CommandButton),名称分别为Cm—
dAddcondition、CmdDelcondition、CmdOk和CmdCancel。刚显示
With Grid1 设置表格的列数、列宽及固定行显示的列表头
.
FixedRows=1 固定的行数为1
该窗体时,命令按钮CmdDelcondition和CmdOk不可用。
图3
2.窗体的通用——声明段中的代码
Option Explicit
D1m conditionNo As Integer 表格中的条件数
3.窗体的Load事件过程代码
在组合框CmbSearhem和CmbRelation中分别添加查询项目
字段名称和关系运算符,在表格控件Gfidl中设置列数、列表
头名称及规定每列的宽度。
Private Sub Form
_
Load(J
On Error GoTo errdo
DimiAs Integer
queryStr=
For i=0 To rs.Fields,Count一2
cmbSearltem:Addltem rs.Fields㈣,Name
Next
cmbSearltem:Listlndex=0
cmbRelation Addltem :
cmbRelation.Addltem >=
cmbRelation,Addltem
cmbRelation.Addltem ‘
cmbRelation.Addltem (=
CmbRelation Addltem 《>
cmbRelation.Addltem"like
cmbRelatiO n.Listlndex=O
txtfindvalue Text
cmbFin ̄alUe Vis e=False
OptAnd.Enabled=FaIse
添加第一个条件时 逻辑运算符不可用
optOr.Enabled=FaIse
.
Cols;5
。
ColWidth(O):1000
.
ColWidth(1)=1000
.
ColWidth(2)=1800
.
ColWidth《3)=1 000
。
ColWidth《4)=2300
.
TextMatrix(O.O)= 序号
。
TextMatrix(O,1); 逻辑关系
.
TextMatrix(O,2) 查询项目
.
TextMatrix(0 3): 条件关系
TextMatrix(O,4)= 查询信息
EndWith
cmddelcondition.Enabled False 没有添加条件时,删除条
件无效
cmdOk.Enabled, False 确定按钮无效
ExitSub
errdo:
MsgBox Error(Err),vbCritica J, 多项条件查询
EndSub
4.单击组合框cmbSearhem时的单击事件过程代码
当查询项目为“性别”或“班级”时,能在组合框
CmbFindvalue中显示“男”和“女”或表中所有班级字段值,
供用户选择。
Private Sub cmbSearltem_Click()
Dim rsclassname As ADODB.ReCOrdset 用来在查询的组合
框中添加字段值
Dim sql String
On Error GoTo errdo
Set rsclassname New ADODB.Recordset
sql="select distarct班级from Students"
rsclassname. Open sql,cont,adOpenKeyset,adLockOptI_
mistiC
Select Came cmbSearltem Tex0
Case 性别
cmbFindvalue.Visible=True
txtf n dvaiue l\b\售 False 、
cmbFindvaJue Clear
embFindvalue.Addltem 男
cmbFindvalue.Addltem 女
CmbFindvalue Listlndex 0
Case 班级
CmbFindvalue.Visible=True
txtfindvalue.Ⅵsible=False
cmbFin
dvalue.CIear 清除前面显示在组合框中的内容
Oo While Not rsclassname.EOF
cmbFindvalue.Addltem rsclassname.Fields(O).VaIue
礴 lassname.MoveNext
L{oOp
承II
维普资讯
l ) l 抟AS
Set rsclassname=Nothing
cmbFindvalue.Listlndex=0
Case Else
cmbFindvalue Visible=False
txtfindvalue。Visible=True
End Select
Exit Sub
errdo:
MsgBox Error(Err),vbCritical, 多项条件查询
Resume Next 、
End Sub
5.“添加查询条件”命令按钮的单击事件过程代码
Private Sub cmdAddcondition_Click()
On Error GoTo errdo
If txtfindvalue。Visible=True Then
If txtfindvalue.Text= Then
MsgBox 请输入查询信息 vbCritica1. 多项条件查询
Exit Sub
End If
End If
conditionNo:conditionNo+1 条件数加1
Grid1。Rows:conditionNo+1,行数为条件数加
optAnd,Enabled=True 逻辑运算符有效
optOr.Enabled=True
添加查询条件到表格中
Grid1,TextMatrix(conditionNo,0)=Format(conditionNo,
O0 )
If conditionNo>1 Then
If optAnd.Value=False And optOr.Value=False Then
MsgBox 请选择逻辑运算符
Exit Sub
End If
Grid1.TextMatrix(conditionNo,1)= llf(optAnd Value=
True, AND , OR )
Else
G 1,TextMatrix(conditionNo,1)=~
第一行不显示逻辑关系
End If
G rid1.TextMatrix(conditionNo,2)=cmbSearltem,Text
Grid1,TextMatrix(conditionNo,3)=cmbRelation,Text
If txtfindvalue.Visible=True Then
Grid1.TextMatrix(conditionNo 4》=txtfindvalue.Text
Else
Grid1.TextMatrix(conditionNo,4)=cmbFindvalue Text
End If
cmddelcOnditiOn,Enabled=True
cmdOk.Enabled=True
Exit Sub
errdO:
MsgBox Error(Err),vbCritica1. 多项条件查询
2006.10
毫■■翟技巧与
6.“删除查询条件”命令按钮的单击事件过程代码
Private Sub cmddeIcondition_Click
On Error GoTo errdo
If Grid11.Rows<=1 Then Exit Sub 无条件时不删除
DimI i As Integer,jAs Integer 将选择的行后面的所有行向前移
For Grid RowSell+1 To Grid1。Rows一1 {为行号
For J=0 To4 、 号
Grid1.TextMatrix(_l一,.j)=Grid1.TIextMatrix j)
Next。J I
Grid、.TextMatrix i一、1 0、 Format(i一、. Q 、
一
愚。薅号逢镶 ll。
N
G
ext
r-d
I TextMat
1
i
.
rix
(1、 1 、:~.)=~ .第一行不显示逻第 警 辑运算符 I
lf Grid1.Rows> Then Grid1.Rows=Grid1.Rows-1
。 数憾 。
conditionNo;0DnditionNo一,
IfGrid1.Rows《=1 Then
cmddeIcondition.Enabled;FaIse
cmdOk Enabled;False
EndIf
ExitSub
errdo:
MsgBox Error(E rr) ̄vbCritical, 多项条件查询
7.“确定”命令按钮的单击事件过程代码
Private Sub cmdOk
_
Click(、
On Error GoTo errdo
Dlm str As String 每一行的条件表达式 _
m coI、As String 镰— 值
趴m col2 As String 镰二 值
Dim col3 As String 第三列的值
Dim col4 As String 第四列的值
conditionNo;0 Then MsgBox 请选择查询条件
querySt =
D_m i A nteger
Q¨i=、To conditionNo
str=
co门=Trim(Gridl TextMatrix(『J1)) 得到逻辑关系运算符
co12=Trim(Grid TextMatrix(i.2I) 查询项目
col3;Tnm(Grid1 ̄TextMatrix(i,3I) 关系运算符
col4=Trim(Grid1.TextMatF_xI i.4) 查询值 _
If col3= like Then
str=col2& &col3& % &col4& %
Elsel’co = 出 { 主}旯 _【 en
str=col2&。col3& &col4& 日期型字段力皿井号
Else col\2; 入学息 "Then t数谨字段
str;col2&Col3& col4
|l|
(下转第67页)
维普资讯
deepCloneObjects(objList.modelSpaceld.idMap)
AcDbldMappinglter iter(idMap):
for(iter.start():!iter.done():iter.next())(
AcDbldPair idPair:
#import t Program Files\Common Files\SYSTEM\ADO|
msadol 5.dll rename("EOF . ADOEOF )
using namespace ADODB;
iter.getMap(idPair):
if(!idPair.isCloned())
continue;
三、结语
本文所描述的是通过AUTOCAD的二次开发,通过操作
desid.setFromOIdld《idPair.value().asOIdld())
)
)
CAD二维图的部件轮廓,可以快速精确计算出该部件三维实体
的体积和I重量,在产品设计中很有使用意义。
6.ARX程序中使用ADO数据库技术
参考文献
1.avid J.Kruglinski,Scot Wingo,George Shepherd著.
将部件的材料信息存储在数据库中,并在对话框中对数据
库记录进行添加、修改、删除,在项目中是利用ADO数据库
技术进行操作的(注意:在stdAfx.h文件中添加组件的引
用)。
VISUAl_ C++技术内幕6.0第五版.北京希望电子出版社,
2000
2.俊昌、李旭东编著.AutoCAD objectARX 2000开发
技术指南.电子工业出版社,1999
//C0M接口支持类
#include<atlconv.h>
nclude<coredef.h>
3.李世国编著.AUTOCAD高级开发技术一ARX编程及
应用.机械工业出版社,1999
(收稿日期:2006年8月6 E1)
//描述ADO接口
(上接第50页)
Else 字符字段加单引号
str=col2&col3&…
End If
成了单项条件查询。单项查询是多项查询的特例。该程序可以
满足各种查询条件的需要。
2.设置连接数据库的字符串时,可在窗体上添加ADO数
&col4&…
据控件,在其属性页中通过“生成”连接字符串向导来生成,
将生成的字符串复制到程序代码中,然后再将ADO数据控件
删除即可。这样可避免繁琐的输入或出错。
3.无论是单项查询还是多项查询,生成查询条件字符串
时,要根据查询的字段类型和运算符生成合法的表达式,这是
最容易出错的地方。
4.所有照片文件单独放在一个文件夹中,而不是按照通
常的做法放在数据库中,这样可简化照片的显示。不过照片文
queryStr=queryStr&col1&
Nexti
Me.Hide
&str&
Exit Sub
errdO:
MsgBox Error(Err),vbCritical, 多项条件查询
Me.Hide
End Sub
8.“取消”命令按钮的单击事件过程代码
Private Sub cmdCancel_Click()
queryStr=
Me.Hide
End Sub
件名最好要有规律,如:该文中以学号为-文件名。
此程序在VB6+SQL Server2000环境下调试通过。
参考文献
1.李晓黎等.Visual Basic+SQL Se ̄er数据库应用系统
开发与实例.人民邮电出版社, 2003.8
七、总结
1.‘本程序提供了利用ADO对象对SQL Server2000数据库
2.龚沛曾等.Visual Basic程序设计简明教程(第二版)
高等教育出版社,2003.3
3.刘中甫.在VB+Access系统中实现多项条件查询.电
脑编程技巧与维护,2003.9
(收稿日期:2006年7月9日)
进行连接并查询记录的方法,按照某一个字段查询时,可采用
单项条件查询。对于多个字段进行查询时可采用多项条件查
询,其中多项条件查询时,如果只对单个字段进行查询,则变
版权声明:本文标题:在VB+SQL Server 2000系统中利用ADO进行各种查询的实现 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1710854529a576417.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论