我的软件就剩这么一个问题了,而且我自己解决了快一个月了,老大们帮帮我吧

sdmyhy 2004-05-05 10:12:02
con.Close
set con=nothing
请问以上代码是什么意思?我好像没用过啊?
我在程序中是这样写的
data1.databasename= "d:\mydata.mdb"
data1.recordsource= "aaa"
我在另一个简单的程序中试验了一下用一下代码关闭的
data1.databasename=""
data1.refresh
这样就可以了,可是回到我的代码中,老是提示“对象变量或with块未设置”,我看了看出错的代码实在另一个窗体中
If Form1.ListView1.ListItems.Count > 0 Then
Dim i, Count As Integer
Count = Form1.ListView1.SelectedItem.Index
Form1.Data3.Recordset.MoveFirst
i = 1
Do While i < Count
Form1.Data3.Recordset.MoveNext
i = i + 1
Loop
Form1.ListViewItem = Count
Text1.Text = Form1.Data3.Recordset.Fields("jfdw")
Text2.Text = Form1.Data3.Recordset.Fields("jfje")
Yje = Text2.Text
Text5.Text = Form1.Data3.Recordset.Fields("pjbh")
Text4.Text = Form1.Data3.Recordset.Fields("bz")
If TxN = "" Then
Text3.Text = "系统"
Else
Text3.Text = TxN
End If
End If

我在程序中用了十几个data控件,我一一把他们的databasename属性都清空了,怎么还不行啊?快帮帮我吧,我的软件就剩下这么一个问题没有解决了,不能让我功败垂成啊。望朋友们教教我!朋友们请留下信箱好不好,如果你们的回答我看不太懂的话我再写信问你们。我的信箱是sdmyhy@21cn.com
...全文
13 30 点赞 打赏 收藏 举报
写回复
30 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
sdmyhy 2004-05-05
唉,还是提示拒绝的权限,我看这个功能是实现不了喽。那我听你的,这个程序我还要再改,按你的路子,全部重新修改,到时候有问题的话大哥可得多帮忙啊。对了大哥,我的水平是不是很差?我总觉得我越学越发现自己懂得太少,甚至有点看不起自己了。
  • 打赏
  • 举报
回复
junglerover 2004-05-05
如果像你说的“就剩这么一个问题”了的话,你按照我写的改完应该就没错了啊。

如果你这个程序还想以后有发展的话,我认为全部废掉重写是唯一的出路。现在的程序,你越改,只能发现它越是一团乱麻。

写程序应注意以下基本原则:
1。窗体、控件和变量命名:窗体:如frmMain;控件:如txtName;变量:如strSQL,等等。找本命名规范来看。
2。窗体之间不要随意访问:每个窗体在FORM_LOAD时,初始化自身的控件;FORM_UNLOAD时,释放自身控件中需要释放的内容。如非必要,不要在窗体A中操纵窗体B的控件。
  • 打赏
  • 举报
回复
kittyflower 2004-05-05
前几天我也在做这些管理系统,用的也是DATA控件,也出现过对象块或WITH块未定义的情况,不过都解决了,是因为DATA控件有个RECORDSOURSE属性那里没设置,不知道你是不是这个问题
  • 打赏
  • 举报
回复
sdmyhy 2004-05-05
大哥,那我下一步应该怎么做呢?
  • 打赏
  • 举报
回复
chuting1 2004-05-05
哈哈,恐怕你连控件的使用都有问题,没那么用的,思路也不清晰
  • 打赏
  • 举报
回复
junglerover 2004-05-05
不好意思,我基本上不上QQ。
没有找到你用的 FLATBUTTON 控件。

看了代码,你的问题在于第一次调用FORM11中的DataClose方法时,使用了FORM13的属性,会触发FORM13的FORM_LOAD事件(因为FORM13并未被加载过)。而FORM13被LOAD时,又会调用FORM1的DATA3,而FORM1的DATA3正好在此前被你释放了,因此产生错误。最简单的改法是这样:把释放FORM13中DATA控件的语句提到前面:

Private Sub DataClose()
Form13.Data1.DatabaseName = ""
Form13.Data1.RecordSource = ""
Form13.Data1.Refresh
Form13.Data2.DatabaseName = ""
Form13.Data2.RecordSource = ""
Form13.Data2.Refresh

Form1.Data1.DatabaseName = ""
Form1.Data1.RecordSource = ""
Form1.Data1.Refresh
Form1.Data2.DatabaseName = ""
Form1.Data2.RecordSource = ""
Form1.Data2.Refresh
Form1.Data3.DatabaseName = ""
Form1.Data3.RecordSource = ""
Form1.Data3.Refresh
Form2.Data1.DatabaseName = ""
Form2.Data1.RecordSource = ""
Form2.Data1.Refresh
Form4.Data1.DatabaseName = ""
Form4.Data1.RecordSource = ""
Form4.Data1.Refresh
Form5.Data1.DatabaseName = ""
Form5.Data1.RecordSource = ""
Form5.Data1.Refresh
Form10.Data1.DatabaseName = ""
Form10.Data1.RecordSource = ""
Form10.Data1.Refresh
Form12.Data1.DatabaseName = ""
Form12.Data1.RecordSource = ""
Form12.Data1.Refresh
Form12.Data2.DatabaseName = ""
Form12.Data2.RecordSource = ""
Form12.Data2.Refresh
End Sub

你的程序只能用四个字形容:一塌糊涂。
1。FORM和控件居然连命名都不做???程序根本没法读。
2。FORM之间的相互访问太过随意,简直就是乱搞。
  • 打赏
  • 举报
回复
dongge2000 2004-05-05
基础,我也没学好,呵呵!
  • 打赏
  • 举报
回复
sdmyhy 2004-05-05
大哥有qq吗?我的qq是21003949,如果咱们能联系,以后我在学习中碰到问题就请教你好吗?
  • 打赏
  • 举报
回复
Abyss-Xu 2004-05-05
con.Close
set con=nothing
关闭连接对像
并将其释放
rs.close
set rs=nothing
关闭数据集合对像
并释放
  • 打赏
  • 举报
回复
sdmyhy 2004-05-05
代码已经发出,请查收,谢谢大哥。
  • 打赏
  • 举报
回复
junglerover 2004-05-05
今天有空,发给我吧。记得连数据库一起。
jungle@vip.sina.com
  • 打赏
  • 举报
回复
sdmyhy 2004-05-05
出错的代码
If Form1.ListView1.ListItems.Count > 0 Then
Dim i, Count As Integer
Count = Form1.ListView1.SelectedItem.Index
Form1.Data3.Recordset.MoveFirst
i = 1
Do While i < Count
Form1.Data3.Recordset.MoveNext
i = i + 1
Loop
Form1.ListViewItem = Count
Text1.Text = Form1.Data3.Recordset.Fields("jfdw")
Text2.Text = Form1.Data3.Recordset.Fields("jfje")
Yje = Text2.Text
Text5.Text = Form1.Data3.Recordset.Fields("pjbh")
Text4.Text = Form1.Data3.Recordset.Fields("bz")
If TxN = "" Then
Text3.Text = "系统"
Else
Text3.Text = TxN
End If
End If
我是个初学者,刚学VB不久,有些问题是似懂非懂的,至于data控件我一直在用,你的意思是说不用这个控件吗?所有的连接用代码实现?可是我这个软件在我们办公室非常实用,我不想放弃它,你看还有没有别的什么办法吗?要不我把我的全部代码发给你,你给我改一下行吗?
  • 打赏
  • 举报
回复
flc 2004-05-05
要学习基础的东西
  • 打赏
  • 举报
回复
hewei2003 2004-05-05
啊扑
My Email:cqhw2003@126.com
  • 打赏
  • 举报
回复
haipingma 2004-05-05
用ado吧
  • 打赏
  • 举报
回复
junglerover 2004-05-05
con.Close
set con=nothing

上述代码的意思是关闭数据连接,并将其释放。这是一般人写软件的方式。

至于你的问题,真不知道说什么好。你并没有写明,究竟在哪句代码上出现了“对象变量或with块未设置”的错误。只能告诉你,这个错误一般是由于你没有创建对象实例之前,就使用该对象导致的。

DATA控件这个东西,其实没有什么用。如果你真的想写软件,最好放弃掉这个东西,回到一般的方式上来,用数据连接和结果集操纵数据库。
  • 打赏
  • 举报
回复
happywqw 2004-05-05
看看编码规范吧!还有就是常用控件的使用方法!这样就不容易出现这样的问题了!
还有就是参考以下别人的源码!:)
  • 打赏
  • 举报
回复
sdmyhy 2004-05-05
谢谢众位朋友的指教,在下感激涕零!
  • 打赏
  • 举报
回复
sdmyhy 2004-05-05
谢谢大哥,终于成功了,唉,我的代码太乱,我都觉得是这样,没有一点规范,写着写着就乱套了。以后一定注意,请大哥多多指教。
  • 打赏
  • 举报
回复
taosihai1only 2004-05-05
ado最灵活了
  • 打赏
  • 举报
回复
加载更多回复
相关推荐
发帖
VB基础类
加入

7543

社区成员

VB 基础类
申请成为版主
帖子事件
创建了帖子
2004-05-05 10:12
社区公告
暂无公告