vb 让不同的功能连接不同的access数据库管理系统

21:51 提问
VB6.0不同的form连接统一个数据库的问题,请大神解决。
错误为子程序或函数中的属性无效
Public j As Integer
Private Sub Form1_Load()
Public cnn As New ADODB.Connection
Public rs As New ADODB.Recordset
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "E\VB工程\access\tycs.MDB"
rs.Open "select * from YJCS", cnn, adOpenKeyset, adLockOptimistic
Set MSHFlexGrid1.DataSource = rs
MSHFlexGrid.colWidth(0) = 100
'i = 1 '第一个原件编号
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
xnow = X: ynow = Y
If moveflag = True Then
Dim cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\access\tycs.mdb"
rs.Open "select * from YJCS where 编号=" & j, cnn, adOpenKeyset, adLockOptimistic
xnow = rs.Fields("X1")
ynow = rs.Fields("Y1")
'xz = rs.Fields("XZFLAG")
x2 = X: y2 = Y
rs.Fields("X1") = xnow + x2 - x1
rs.Fields("Y1") = ynow + y2 - y1
'If xz = False Then
rs.Fields("XLEFT") = xnow + x2 - x1
rs.Fields("YLEFT") = ynow + y2 - y1 - 100
rs.Fields("YRIGHT") = ynow + y2 - y1 + 100
rs.Fields("XRIGHT") = xnow + x2 - x1 + 1300
'rs.Fields("XLEFT") = xnow + x2 - x1 - 100
' rs.Fields("YLEFT") = ynow + y2 - y1
' rs.Fields("YRIGHT") = ynow + y2 - y1 + 1300
'rs.Fields("XRIGHT") = xnow + x2 - x1 + 100
x1 = x2: y1 = y2
Picture1.Cls
Call updata
Public j As Integer
Private Sub Command1_Click()
Public cnn As New ADODB.Connection(调试错误指示位置)
Public rs As New ADODB.Recordset
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\access\tycs.mdb"
rs.Open "select * from YJCS where 编号=" & j, cnn, adOpenKeyset, adLockOptimistic
If rs.EOF = False Then
rs.Fields("额定容量") = Form2.Text1.Text
rs.Fields("额定频率") = Form2.Text2.Text
rs.Fields("高压侧电压") = Form2.Text3.Text
rs.Fields("低压侧电压") = Form2.Text4.Text
rs.Fields("一次额定电流") = Form2.Text5.Text
rs.Fields("二次额定电流") = Form2.Text6.Text
rs.Fields("名称") = Form2.Text7.Text
rs.Fields("二次额定电流") = Form2.Text8.Text
rs.Fields("空载损耗") = Form2.Text11.Text
rs.Fields("短路电压百分比") = Form2.Text12.Text
rs.Fields("短路损耗") = Form2.Text13.Text
rs.Fields("空载电流百分比") = Form2.Text14.Text
rs.Fields("额定容量") = Form2.Text1.Text
按赞数排序
Form2.Text1.Text
这种代码,能找到另一个窗口么?
看着都悬。哪有这样胡乱写程序的。
那是在第二个表格中的,有没有在第一个form中调用。
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐在VB6/VB.NET中灵活设置数据库连接
查看: 1346|
摘要: 利用VB6/VB.NET开发的数据库软件,往往在其部署时要求灵活地改变数据库的连接.VB6利用数据库连接文件(MDL)可实现灵活连接数据库,而VB.NET虽然也可以利用MDL文件,但建议使用自定义的数据库配置文件来实现这一目的.
摘要利用VB6/VB NET开发的数据库软件,往往在其部署时要求灵活地改变数据库的连接。vB6利用数据库连接文件
(MDL)可实现灵活连接数据库,而VB NET虽然也可以利用MnL文件,但建议使用自定义的数据库配置文件来
实现这一目的。
关键词数据库连接,数据库连接文件,配置文件
由Micr0∞n公司推出的vB工具(vB6/vB.NET)在开发
数据库软件中得到业界的广泛应用。但所有大型的数据库软件
(如后台数据库为sQL sERVER、ORAcLE等)在部署(或是
由测试环境切换到生产环境,或是销售到其它企业)时,数据
库服务器环境都会变化,例如数据库服务器的IP地址、访问
数据库的用户名和口令等就是经常变化的环境参数;另一方
面,在具体编程中,窗体FoR^f往往都包含数据库访问控件
(VB6的为ADO控件,VB.NET的则为ADO,NET控件),而
市面上发行的大多数工具书中在介绍这两种控件时都偏向于静
态连接数据库的方式,即在程序设计期采用手工方式配置数据
库连接。当一个软件需要多个窗体FoRM时,则按此方法可
能需要多次手工配置数据库连接,最麻烦的是在进行软件部署
时,必须重新一一进行手工培植,然后再编译打包,显然静态
连接这种方式不适合大型数据库软件的开发和部署。下面分别
介绍在VB6及VB.NET中如何灵牺设置数据库连接。举例测
试数据库为sQL sERVER(7.O/2000)上白带的Pub8数据
库,IP地址假定为lO.254.10.16,用户为sa,密码为空。
二、VB6中灵活设置数据库连接
在yB6中采用数据连接文件(Mjcr骝曲Da£a“nk,MDL)
文件可灵活连接数据库。具体方法如下:
ll创建MDL文件
在c盘根目录下新建一个文本文件,将其命名为
VB6且nk鼬.uDL(即将该文件的后缀由ⅡT改为uDL,而非
MDL!),再用Wind删s的默认方式打开,则会出现“数据连
接属性”的配置窗口,切换到“提供程序”一项,如图1。在
图1中提供了多种AD0方式可连接的数据,本文以sQL
sERVER数据库为实例,故选取了“Mic珊s曲oLE DB Provider
for sQL ser忡r”一项,然后进入下一步进入到“连接”配置,
输入测试数据库的有关配置参数,如图2。配置完毕.点击
文件创建完毕后,用记事本打开可看到如下的文本内容:
【oIedb】①
.EVe‘y州ng after州s¨neIs an OLE DBⅢstrlng 圆
ProvJder=SOLOLEDB 1:PersJst Securj“Jnfo=Fa Jse,User
ID=sa:㈨t㈧ca恻og=Pubs:Data source=10 254 10 16③
中的任何字符都不得更改,否则将不会是一个合法的MDL文
2.使用MDL文件
建立vB6工程,创建FORM,从工具箱中选取ADODc控
件拖人到一个mRM中,采用默认名Adodcl,如果工具箱投
有ADODc控件,则需通过菜单Pmject componen协来选取
Micr080ft ADO DBla Con咖l 6 0一项;在Adodcl.Connec60n—
s矗ng的属性设置中,点击⋯按钮进人属性页中,在“user
Da忸ⅡIIk File”中通过浏览选择确定MDL文件即可,如图3。
在图3确定后,可观察到Adodcl.c蚰n鲫ions晡ng属性描
述为“F1LENAME=c:、vB6Ijnk&r.础”。通过ADODc控件
连接数据库成功后,再引入Data衄d等控件,就可得到Pubs
数据库中指定表中的数据,这里不再赘述。很明显,当数据库
服务器环境发生变化,例如口地址发生变化。则重新进行
(1)步骤或者是直接利用记事本修改③句,重新配置MDL文
件里的连接字符串即可。由于多个ADODc控件均可使用一个
MDL文件.所以只需重新配置一次该文件就可以使软件自动
重新连接到另一个数据库服务器上。
在vB6中数据环境(DmaEnvi咖ent)也是一个经常使用
的组件,例如报表D砒ampon的制作经常与Dat且Enviromem相
关联。在D山Envi嗍ent中需要建立connecdon来连接数据
库.但进入connection的屑性设置后出现的不是如图3而是如
图2的窗口,因此不好指定MDL文件,不过参照
vB6是近几年来采用DNA模型开发应用程序最流行的语
言,主要开发客户程序和coM组件,当然实现这些也可用各
种各样的第三方语言,但VB开发人员的数量超过了这些语言
开发人员的总和。不过VB6也有其局限性,例如:没有多线
程的功能;不适合面向对象开发;没有用于基于Intemel的应
用程序的高效用户界面等。Micr嘶oR公司重新设计了VB,
vB.NET是vB6之后的质变,其目的是解决未来十年计算需
求的工具,采用vB.NET开发大型数据库软件已经成为业界
的潮流。在vB.NET中开发数据库的核心是AD0.NET,下面
介绍在使用AD0.NET的情况下如何灵活设置数据库连接.包
括使用MDL文件和自定义的配置文件以及二者之间的对比。
先建立好一个VB.NET项目。
1利用数据连接文件MDL
(1)具体使用
创建一个FORM,先创建一个OleDbD耻以dap衙取名
01eDbD础dapterl,在紧接着出现的“数据适配器配置向导”
窗口中按取消退出;接着再创建一个oleDbco皿ection取名
0leDbconnecti叽1.在其connec60nstri“g属性描述中手工输入
字符串“眦NAME=c:、vB6_Ⅱnkstr.u出” (与VB6中数据
环境D“taEnv№ment的collllecdon使用MDL文件的方法一
样),然后让0leDbDalaAdapterl selectcommalld.co咖ction选
择OleDbconnec血n1,并且对0kDbDataAd印terl.selectcom雌m
c伽m粕dT驺吐赋值“sEucT nⅡ∞,}FROM 6Ⅱes”。接下来通
过菜单“数据I生成数据集”来产生数据集Datasetl,如图4。
④句(将数据填充到mt嘏吼1l以在DataGirdl中显示),如
PublIc Sub Newf)
MvBase New¨
ln⋯剖lzeC0mDOnem(1
OIeDbDataAdapte r1 Fi||《DataSetl 1.”titles’) ④
运行程序,可看到DataGirdl中有ntles表的所有数据显
虽然ADO NET目前可通过上述方法使用MDL文件,但
Mi—on公司却是在弱化这方面的功能,最明显的证明就是在
设置OleDbc咖ectionl的connec旺onst血g属性时,通过“新建
连接”生成的窗口如图2,没有提供任何输人MDL文件的地
方。事实上,MDL文件是粥ndo啪系统本身自带的一种系统
文件,带有明显的ODBc特色,可视为oDBc中的数据源,但
这却与ADO N盯所提倡的xML思想不合。限于篇幅,本文
不详述ODBc与xML的区别,但建议在ADO.NET中不再使
用带有oDBc特色的MDL文件,虽然事实上可利用(2)介绍
的方法使用MDL,但在开发大型数据库软件时,可能会因为
操作不当而导致0leDbconnection使用MDL失效,最后可能需
要重置甚至可能重新生成OleDbconnection。
2.利用自定义配置文件
虽然在ADO NET中不推荐使用MDL文件,但是可以借
助这种思想,即将数据库连接字符串放在一个自定义的配置文
件中,所有ADO NET都使用配置文件中的连接字符串或是根
据该字符串生成的OleDbconnection。下面详细介绍这种方法。
(1)具体使用
A、首先在当前vB.NET项目的BIN目录下生成一个文本
文件取名VBN耵』BLillk雠,里面写人数据库连接字符串
“Pm订der=sQLOLEDB.1;Password。;Pe商Bt s咖dty h面=
The; User ID=阻; Initi丑l CⅡt山g=pubs; Data S0urce=
10 254.10.16;Use Pr桃edm for Prep眦=l;Auto T姗k=
1he;Packet size=4096;uBe Encryptionfor D丑ta=陆e;T如witll
column coⅡation when po日Bible=F也e” (黑体字为经常变动的
c、为项目添加一个M0dulel vb文件。代码如下:
lmpOrts System lO
M0dule MOdu旧1
PubIlc GIDBCOnn As 0IeDb OleDbC0nnec“0n
PubIIc G_connstrForCommon As Strmg
#Reglon“建立全局数据库连接jlDBconn
Pub|ic Sub lnItDBConn()
Dlm curdlrectOrv As Stnna
cu吲rectory=Dlrectory GetcurrentDlrectory()。定位当前目录
FlIeOpen(1.curdIrectory+”\VBNElDBLlnk t×t 4,
0penMode lnput)
G_connstrForcommon;L』nelnputI 1J 。得到全局的数
据库连接字符串
GlDBConn=New OIeDb OIeDbConnectlon 1)’建立公
共数据库连接
GlDBConn ConnectlonS佃ng;G_connstrForCommon
GlDBConn 0pen()
RleClOse(¨
#End ReglOn
End MOduIe
D、在FORM的PIlblic s11b N删()方法中添加代码,如下
Publlc Sub New()
MvBase Newll
ln⋯alIzeComDonem()
lf G-conns”ForCommon ls№曲mg Then
ln【tDBConn f1 @
Da伯Adapterl SeIectCommand Connectlon=GlDBConn @
DataSetll Clea⋯ ⑦
OleDbDataAdaoterl F⋯lDataSetll,”t【tles”)
其中,⑤是首次获得公共数据库连接字符串并建立公共
0leDbco衄ectioⅡ取名为GlDBcollll, ⑥是替换olenb_
DataAd印瞬1中的connection(即将静态配置的connection替
换掉),⑦是清空数据集以便填充。
运行程序,同样可在Data∞d1获得Tides表的所有内
E、有时没必要在设计期静态配置com地chon,或是程序
l臻≮麓键蘩一-。蕞鬻|§棼A|萋j|簧毪蘩§甏疆§§§鬻馨3i婺j§jl。|薯·毒毒。,毒。·。|¨|』¨氇l、?|警鼍t?。§|鼻?|蕞·
。琶篱鼍|赣氅%赣謦妻罄囊罄|蘩饕.i簿t强t氆强|ij蕾|¨¨露疆曩|鬻?·鬻蓦罄警豫琏重靠叠毫?¨;_■童∞j};¨j o毫|’穗.?曩_
{爨%|‰§|萋毳蕊尊l琵o§甏|警≮。j。、“一t。|囊:。i|《??|。j&j?ii露l|n。?。?l??。iIl _?- 一『毒|i|
裁攀镰‰≮麓遵鬻罄警警j譬豢毽蒜j蕊鼍蠹饕。!j§鬣警慧鼍整|j j??毒|!|:』鬻。j。?誊≤强?繁?j,
l!》Aj‘ABAS琶
Pub『c C_ass BaseCOnn
D'Jb lc buffabadaoter As 0『eDb 0leDbDataAdaDter
Pub lc buffdataset As Data DataSet
Pu㈨c Sub New¨
MvBase New『)
f G_connstrForCommon ls NoⅢng-nen
nnDBCOnn f)
buf削DaaaDter=New O oDb 0IeDbDataAdaote’(”se
ect$from叭les。G1DBConn) r§
bu什dataset=New Da伯DataSet{) j
Protoctcd Overrldes S LJb F nallze I)
MvBase F n训ze¨
bL卅abadaote r DIs00se㈠
buffdataset DIsD0se{】
其中⑧和⑨分别生成oIeDbnataAdapter和Dataset,co卅
nectlon在生成OleDbDataAd叩ter(b舶ad8p【er)时就已隐式牛
成。接下束在FORM中创建一个Button取名Buttonl和
nxtBox取名nxtBoxl,在BI·tton I的click事件中输入如下代
DIm con『1 As New BaseConn() "
conn buf倒baaaDte『S刮ectC0mmana C0mmandTe×t= “se—
lect t tIeJd,叭e,prlce frOmⅢes where p rlce>1 O“
conn bJffdataset CJearf)
collll bLJffdbadaDter F_|(conn buffdataset)
TemB0×1 C ea r{}
Dlm As ntl 6
W.小conn bu什dataset nb es(0)
F0r =0 T0 ROws C。~儿]t一1
Te×tBo×1 Te×t+= Rowsfi)item(“ttleJd”)十” ”
TextBo×1 Text十= Rows㈩tem(”㈦t e”)十” ”
Te×tBo×]Te×t+=Trm(Rows《f) tem( 0rlce)J
+Chrfl3}+Ch rfl 0)
Te×tBo×1 Te×:+=”一’+Ch r(1 3)十Chr{10)
cOnn=NOth}19
其中,⑩牛成Baseconn类的支例⋯n,生成过程中已经
连接上了配置文件指定的数据库。运行程序后,可在TexIl3。x1
中看到Titles中P五ce>lO的数据。代码“㈣n=Nothl“g”是
为了让NET环境显式地删除引用,释放内存。
在ADO NET巾采用自定义配置文件,既拥有使用MDL
文件的优点.又屏弃了使用MDL文件的不便,摆脱了与xML
思想的冲突,在软件部署时重设数据库连接的方面上具有极大
嚣蹲爨一糯糙孵蘩
该方法,此过程变得非常简单易行。
l Microson corporatiun著Visual Basic 6.O中文版程序具
指南北京希望电脑公司,1998 9
2}1md BaⅣcll Richard Blalr等著.VB.NET高级编程清
华大学出版社,2002.9
3 Evangelos Pe帅u【sus等著Vi㈣l Baslc NEr数摧库编程
从入门到精通电子工业出版社.2l:l‘)2 8
(收稿日期: E J
“潍啬波瘸毒鬈电脑的sARs
r鬻窕在国娜簿斑的“沛击渡”l踟琏也蛳鳓解t.鲫新型
·蠕虫病毒目前雹经在霸内瘫符d哥内权威翁反瘸毒公司江
。璃科箍褥托病毒熊陵缎触滴辩最高级,该病毒具备广泛的
传染性捅破蒜性i鬻赣势摊正常使用和网络运行会造成严
。重影蝻.箍害萄能葶魄矛IcIH。许算棍希声应该赶快升缎手
o?。漕;的杀毒鞔棒。鬻藏微鞔公司髓纷敷补丁。
o“神啬渡_病毒焉穆避翻用癣扫描按摩寻找网络上系
统赞弼H2璋凌j霉黝镄簿帆i热麝和甩微软的nc0M RPc
缳磅区漏藕探澍馥溱凌≯遴募镑簿矾精没有潜伏时筒,直
j接感染计算执。一霸鬻观誉孵i翘羟畿勰系统在中饲有广
泛静用穿群,计算搬蘑黟感染渡病毒的凡摩非常高,所以
谚葬机帮户鬻g}秘熙镑盼重视”厚精毒权威{壬江民说,“媾
架瘸毒嚣静典塑班鬃是玲算瓤逡行速度变酶非常慢,幂断
。弹出摇蘑窗口‘&Pe激务终出,需要重薪癌韵计算机’,一
骥氆孚断籀邋看法霉常:使席《涯嚣公司程崮内第一家成功
霉获蟪}霞:霉ir耪摩谚霪≯,黪囊骞零j谚{}霉焦,斑在科的
。蒜鲫彦耩尽缝垒衙舞缀舞警i灞妒只需置网赞级藏者购买
鬟新黪姆瀑毒戢释裁翳豺尝舞滚病毒。”
·、嚣歙蒜病毒菇赢擐霄得鞫霄敏的控制,传播蓖匿可能
涟章爹势豢。满§稳j黉蘑囊瓤精枣静商度蕈翘,器懊上网
下载微虢甓蘑的赫鹣秘萋,j骥鞠檀瘟的靖瞰丹缎警峙;I静.舔毒较绛。饵静K蕈÷÷舢露经剪鞋誊恭该病毒。
0。其体处理措施孽■、。爱囊。
曩处理措趱“”鸯装微舔蒹缝补事i2。03牟7胃微软发
矩t9£O照墨pc漏藏b蛙谚≯z螂晦碗e脚确.积q,lechnf=t/
i臻酾ew/de曩出h。嘲?曩、确毒掰神颤ne‘/sec幽睁/buueIin/
鼍冀憩|骛垮瞬0t|{;::¨:毒||iii— I 、
j《筑巍鼹j涤褊§姆獭曩:酗黔i—i
j? 。案磷勰枣燃强§4辩、
Copyright &VB不通过ODBC联接数据库。
你的问题 和你要达到的目的 有差别1 如果你打不打算用ODBC 就修改程序 直接使用数据库提供的驱动。2 如果仍然使用odbc 就找一个安装包的制作软件 把ODBC 设置在里面 随程序安装的时候设置到目标机器中。
来学习的,不了解MYSQL
每种数据库都有各自的驱动包,要使用数据库就必须导包。
需要下载java连接sqlserver的驱动包 以下三个JAR文件:msbase.jar mssqlserver.jar msutil.jar 如果你的 ms sqlserver 是2000的话还要打上sp4补丁才行!
主要看你连接的是什么数据库,不同的数据库当然对应不同的驱动程序了。
首先你的SQL可以再简写:String condition=&select * from students where 姓名='&+name+&'&;接着告诉你的是,双引号是标注你的整个sql字符串能在java中使用,而后面构建的单引号主要是在执行的查询的时候提交给数据库的。例如,你用 的姓名为&老丁&,那么java提交给数据库的查询语句就是:select * from students where 姓名='老丁'看着上面这句sql,你应该明白了java为什么用单引号了。
人的综合分
感谢您为社区的和谐贡献力量请选择举报类型
经过核实后将会做出处理感谢您为社区和谐做出贡献
确定要取消此次报名,退出该活动?

我要回帖

更多关于 access数据库管理系统 的文章

 

随机推荐