大哥,代码要看清楚嘛!
Adodc1.RecordSource = sql 'XXXXXXXXXXX
应该改成 Adodc1.RecordSource = rs
同时,应该定义数据库中记录的全局变量以便传递值到另一个窗体中在module中 写如如下:
public Dim字段一
********
********然后在上面的代码中把 Form4.Label2.Caption = rs.Fields(0) 之类的改成
Dim字段一=rs.Fields(0)
再Form4.Label2.Caption
依此类推
Adodc1.RecordSource = sql 'XXXXXXXXXXX
应该改成 Adodc1.RecordSource = rs
同时,应该定义数据库中记录的全局变量以便传递值到另一个窗体中在module中 写如如下:
public Dim字段一
********
********然后在上面的代码中把 Form4.Label2.Caption = rs.Fields(0) 之类的改成
Dim字段一=rs.Fields(0)
再Form4.Label2.Caption
依此类推
解决方案 »
- 想要通过自己的程序实现在线翻译,谁能给个建议?谢谢!
- 如何编写查找功能
- 对双cpu电脑熟悉的请进
- 如何把 工程 部件中的 ms windows common control 6 .0 sp4 换为ms windows common control -2 6.0 sp4
- 保存图片的问题,大家可以试一试啊
- 概念不清,还望多指教!
- 请求高手帮助。急急急!!!!!!谢谢!
- 怎么样传递一个Picture对象到自已做的过程里?
- kkkk ,,问了好几个了,给200分,“急”求助 这个菜单设计的问题,,跟贴有分!!
- ReadProcessMemory高手请进
- 请问,winamp的那个播放列表应该怎么实现啊,(说原理即可)不胜感激
- 用哪三個函數將字符串中----頭字母改為大寫,所有字母大寫,所有字母小寫?不算感謝!
Adodc1.Query
看了一楼的回复,我直接吐了。
不是我打击你们,楼主的代码有点太原始了,什么form1,form2,text21,text22....,有没有学过命名规则,看了想都晕。
一楼的回复更可笑,没看到是没有找到记录的错误吗?还说什么adodc1.recordsource=rs,还让人家看清楚,你自己都没看清楚就来说。
再说adodc1.recordsource=rs这样写对吗?我倒!还有你的命名:public Dim字段一,这叫什么命名,看了都想笑,唉!
正确的做法:
在打开rs之后要先判断记录集返回是不是为空,然后再决定使用。
这样:if not(rs.eof and rs.bof ) then
...
...
endif
Set一下嘛,
知道就讲清楚好了,
没啥好卖的,
至于提问时用些form1,form2,text21全无不可,
小代码测试问题都这样的,
CSDN只解决问,不是别的,
不要嘲笑,替人解困^_^
fling_boy你这次是答非所问。
rs.Open sql, cnn, adOpenKeyset, adLockOptimistic
改成
rs.Open sql, cnn, adOpenStatic , adLockOptimistic
试试
还加set ,我无话可说了。
adodc.recordsourc 是字符串类型,rs是一个对象,set可以用吗?
我答非所以问,你看他问的是什么:Form4.Label2.Caption = rs.Fields(0) 《---------错误指在此处提示我的错误是: BOF 或 EOF 中的一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录很明显当前记录集为空,所以应该先判断rs.eof 和rs.bof
如果记录集刚打开时,两个指针同时为真,则记录集肯定为空,否则会有记录.
看错了,
Adodc1.RecordSource = sql
在这里是没用的语句
本来以为是跟MSHFlexGrid1挂钩用的。
msgbox "没有找到相应记录!!!"
exit sub
else
写你自己的代码
end if
或用:
if rs.eof and rs.bof then
msgbox "没有找到相应记录!!!"
exit sub
else
写你自己的代码
end if
sql = "select * from information where 车牌号='" & Trim(Label6.Caption) & "'" ????????????
既然是这样,那你的车牌号就应该从MSHFLEXGRID 控件的当前记录中取啊!!
你现在的错误原因可以参照 chenyu5188(蓝色情调) 的方法!!!那是保险措施!
xx=""
elsexx=rs.fields(0)
endiforxx= rs.Fields(0) & ""
在
Form4.Label2.Caption = rs.Fields(0)
之前先看看
rs.recordcount是否为0
If Rs.RecordCount > 0 Then '返回结果中的行数,可能没有找到记录
‘加入这句试看有没有记录后再执著行下面的
Rs.MoveFirst
Form4.Label2.Caption = rs.Fields(0)
………
End If
1。不要使用单击弹出窗口的方式,使用双击,减少用户误操作触发
2。最好在过程代码中加错误处理,参考 chenyu5188(蓝色情调)提供的方式
3。弹出窗口可以使用模态窗口 form4.show 1,不必要隐藏form3现在问题是不是已经解决了?大家已经把问题剖析得很明了了。********************************************************************
晕!!!!!!
回复了六次了,上来没有???!!!!
如果为了返回记录集的记录数那是另一会事,这时可以把游标设置成客户端静态游标,但这不能保证对所以数据源有效,有的数据源不支持recordcount.
MSHFlexGrid1_dbclick
If Option1.Value = True Or Option2.Value = True Or Option3.Value = True Then
MSHFlexGrid1.ToolTipText = "双击该记录将快速浏览数据"
End If
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sql As String
Set cnn = New ADODB.Connection
cnn.Open "Provider=MSDASQL.1;Persist Security Info=False;Data Source=jkxt"
sql = "select * from information where 车牌号='" & Trim(Label6.Caption) & "'"
'请确保 Label6.Caption 有记录你要查的车牌号,否则不会检索出数据
Set rs = New ADODB.Recordset
rs.Open sql, cnn, adOpenKeyset, adLockOptimistic
'''Adodc1.RecordSource = sql
if not(rs.bof or rs.eof) then '判断是不是有记录,有则显示
Form4.Label2.Caption = rs.Fields(0) 《---------错误指在此处
Form4.Label4.Caption = rs.Fields(1)
Form4.Label6.Caption = rs.Fields(2)
Form4.Label8.Caption = rs.Fields(3)
Form4.Label10.Caption = rs.Fields(4)
Form4.Label12.Caption = rs.Fields(5)
Form4.Label14.Caption = rs.Fields(6)
''Format((Form4.Label16.Caption), "yyyy-mm-dd") = rs.Fields(7)???
'你是否想格式化时间,应该写成下面的
Form4.Label16.Caption=Format(rs.Fields(7), "yyyy-mm-dd")Form4.Label18.Caption = rs.Fields(8)
Form4.Label20.Caption = rs.Fields(9)
Form4.Text1.Text = rs.Fields(10)
Form4.Show 1 '模态窗口显示
''Form3.Hide '可以注释不用
''MSHFlexGrid1.Clear '晕,你把MSHFlexGrid1数据清掉做什么?!
Option1.Value = False
Option2.Value = False
Option3.Value = False
Option4.Value = False
Text21.Text = ""
Text22.Text = ""
Text23.Text = ""
Text24.Text = ""
else '没找到记录
msgbox "没符合条件的记录!"
end if
如果这条记录的所有信息全在 MSHFlexGrid1 中不用去操作数据库,直接使用下面的代码:
dim n as integer
n=MSHFlexGrid1.row '得到当前MSHFlexGrid1的行数
Form4.Label2.Caption = MSHFlexGrid1.textmatrix(n,0)
Form4.Label4.Caption =MSHFlexGrid1.textmatrix(n,1)Form4.Label6.Caption = MSHFlexGrid1.textmatrix(n,2)
Form4.Label8.Caption = MSHFlexGrid1.textmatrix(n,3)
Form4.Label10.Caption = MSHFlexGrid1.textmatrix(n,4)
Form4.Label12.Caption = MSHFlexGrid1.textmatrix(n,5)
Form4.Label14.Caption = MSHFlexGrid1.textmatrix(n,6)
Form4.Label16.Caption=Format(MSHFlexGrid1.textmatrix(n,7), "yyyy-mm-dd")
Form4.Label18.Caption = MSHFlexGrid1.textmatrix(n,8)
Form4.Label20.Caption =MSHFlexGrid1.textmatrix(n,9)
Form4.Text1.Text =MSHFlexGrid1.textmatrix(n,10)
Form4.Show 1 '模态窗口显示'当然顺序可能要你自己调整一下;再试一试,还有问题的话,短消息联系!
If Option1.Value = True Or Option2.Value = True Or Option3.Value = True Then
MSHFlexGrid1.ToolTipText = "双击该记录将快速浏览数据"
End If
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sql As String
Set cnn = New ADODB.Connection
cnn.Open "Provider=MSDASQL.1;Persist Security Info=False;Data Source=jkxt"
sql = "select * from information where 车牌号='" & Trim(MSHFlexGrid1.TextMatrix(row,col) ) & "'" 'row=当前行,col=车牌号所在列
Set rs = New ADODB.Recordset
rs.Open sql, cnn, adOpenKeyset, adLockOptimistic
'''Adodc1.RecordSource = sql
if not(rs.bof or rs.eof) then '判断是不是有记录,有则显示
Form4.Label2.Caption = rs.Fields(0) '《---------错误指在此处
Form4.Label4.Caption = rs.Fields(1)
Form4.Label6.Caption = rs.Fields(2)
Form4.Label8.Caption = rs.Fields(3)
Form4.Label10.Caption = rs.Fields(4)
Form4.Label12.Caption = rs.Fields(5)
Form4.Label14.Caption = rs.Fields(6)
''Format((Form4.Label16.Caption), "yyyy-mm-dd") = rs.Fields(7)???
'你是否想格式化时间,应该写成下面的
Form4.Label16.Caption=Format(rs.Fields(7), "yyyy-mm-dd")Form4.Label18.Caption = rs.Fields(8)
Form4.Label20.Caption = rs.Fields(9)
Form4.Text1.Text = rs.Fields(10)
Form4.Show 1 '模态窗口显示
''Form3.Hide '可以注释不用
''MSHFlexGrid1.Clear '晕,你把MSHFlexGrid1数据清掉做什么?!
Option1.Value = False
Option2.Value = False
Option3.Value = False
Option4.Value = False
Text21.Text = ""
Text22.Text = ""
Text23.Text = ""
Text24.Text = ""
else '没找到记录
msgbox "没符合条件的记录!"
end if
If Rs.RecordCount > 0 Then '返回结果中的行数,可能没有找到记录
‘加入这句试看有没有记录后再执著行下面的
Rs.MoveFirst
Do Until Rs.EOF
Form4.Label2.Caption = rs.Fields(0)
………
Rs.MoveNext'加入这句就可以把焦点移到下一句
Loop
End If
http://expert.csdn.net/Expert/topic/1332/1332715.xml?temp=.5616876
点解两个是一样的,CSDN是做什么的,怪不得有时看不到 啦!