关于VB数据库。

nuinui 2000-05-18 02:26:00
如何避免相同一个字段的值出现两次?
例如:有一个ListBox用于显示Name.mdb数据库中的FileName表的“文件名”字段值,当每次向ListBox中增加记录时,就先查找是否已有同名的记录,如果有就给出相应提示,否则就增加该记录到“文件名”字段中。
我用的方法如下,可行不通,不知错在何处,还请指教。

……
rs.MoveFirst
While Not rs.EOF
If rs.Fields("文件名") <> TxtOpenFile.Text Then
rs.AddNew "文件名", TxtOpenFile.Text
……
Else
MsgBox "已有该文件。"
……
Exit Sub
End If
rs.MoveNext
Wend
……

注:相应的数据库连接也找开,TxtOpenFile是一个TextBox,用于存放准备增加的文件名。


其次,每增加的记录都显在最后,我想把每次新增的记录都从最后一条得到每二条。即ListBox中显示的记录顺序为最新加入的记录在前,但又不是第一条,而是从第二条开始顺序排列。

...全文
124 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Un1 2000-05-19
  • 打赏
  • 举报
回复
文件名不分大小写,最好是:
StrComp(Trim(rs.Fields("文件名")) , Trim(TxtOpenFile.Text ), vbTextCompare)

其次使用此字段去做一个唯一索引最好,只需要处理错误就行。
ring 2000-05-18
  • 打赏
  • 举报
回复
关键在于
Trim(rs.Fields("文件名")) <> Trim(TxtOpenFile.Text )
mxp 2000-05-18
  • 打赏
  • 举报
回复
dim sfile as integer
mxp 2000-05-18
  • 打赏
  • 举报
回复
(1) 您的写法是每循环一条纪录不相等就增加
改为:
dim scount as long
dim sfile as int

sfile=0
if not rs.eof then '判断是否为空
rs.movelast
scount=rs.recordcount
end if
if scount<>0 then
rs.MoveFirst
Do While Not rs.EOF
If rs.Fields("文件名") = Trim(TxtOpenFile.Text) Then
sfile=1
exit do
End If
rs.MoveNext
loop
if sfile=0 then
rs.addnew
......
rs.update
end if
(2)没看懂!

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧