用vb在access的一个表中抽取数据添加到另一个表中,调用第二表时显示记录为空?
第一个form中PrivateSubCommand1_Click()Dimr1AsStringRandomizer1=RndCn.Execute"insertintoda...
第一个form中
Private Sub Command1_Click()
Dim r1 As String
Randomize
r1 = Rnd
Cn.Execute "insert into danxuanti select top 10 * from danxuantitiku order by rnd(-(len(Title) +" & r1 & "))"
第二个form中
Private Sub Form_Load()
Set Cn = New adodb.Connection
Set Rst = New adodb.Recordset
Cn.Open "Data Source=" & App.Path & "\kssj.mdb;Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database password=123456;"
Rst.Open "select * from danxuanti", Cn, adOpenStatic, adLockBatchOptimistic
If Rst.EOF And Rst.BOF Then
MsgBox "记录为空!", , "系统提示"
End If
Text1.Text = Rst.Fields(0).Value
Option1.Caption = Rst.Fields(1).Value
Option2.Caption = Rst.Fields(2).Value
Option3.Caption = Rst.Fields(3).Value
Option4.Caption = Rst.Fields(4).Value 展开
Private Sub Command1_Click()
Dim r1 As String
Randomize
r1 = Rnd
Cn.Execute "insert into danxuanti select top 10 * from danxuantitiku order by rnd(-(len(Title) +" & r1 & "))"
第二个form中
Private Sub Form_Load()
Set Cn = New adodb.Connection
Set Rst = New adodb.Recordset
Cn.Open "Data Source=" & App.Path & "\kssj.mdb;Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database password=123456;"
Rst.Open "select * from danxuanti", Cn, adOpenStatic, adLockBatchOptimistic
If Rst.EOF And Rst.BOF Then
MsgBox "记录为空!", , "系统提示"
End If
Text1.Text = Rst.Fields(0).Value
Option1.Caption = Rst.Fields(1).Value
Option2.Caption = Rst.Fields(2).Value
Option3.Caption = Rst.Fields(3).Value
Option4.Caption = Rst.Fields(4).Value 展开
3个回答
展开全部
你的SQL语句:
insert into danxuanti select top 10 * from danxuantitiku order by rnd(-(len(Title) +" & r1 & "))"
有问题!
1、 两个数据表的的结构是否完全相同?如果表结构不相同,不能这样写的
2、你的 select top 10 * from danxuantitiku order by rnd(-(len(Title) +" & r1 & "))" 有数据结果吗?你有没有单独跟踪一下你的 select 语句?
insert into danxuanti select top 10 * from danxuantitiku order by rnd(-(len(Title) +" & r1 & "))"
有问题!
1、 两个数据表的的结构是否完全相同?如果表结构不相同,不能这样写的
2、你的 select top 10 * from danxuantitiku order by rnd(-(len(Title) +" & r1 & "))" 有数据结果吗?你有没有单独跟踪一下你的 select 语句?
追问
表结构完全一样的,select后也有结果,打开access数据库,能看到第二个表中有10条记录,但无法引用
追答
所以你看到了数据库的记录.但你的 select top 10 * from danxuantitiku order by rnd(-(len(Title) +" & r1 & "))" 语句实际上是没有获得数据记录的,因此 Insert 就没有记录了!
建议你先不要用 Where 条件约束,只用 select top 10 * from danxuantitiku 进行选择插入数据,因为我不知道你的数据表结构,只是觉得你的 Where 后面的条件有些古怪.
先一步一步试一下,如果插入成功,可以再把插入的记录删除掉后再增加 Where 条件,这样调试就能知道问题的所在了。
还有一个办法:就是重新建立一个新的db1.mdb,把你数据库中的表及数据全部重新倒入到db1.mdb 中,然后把老的数据库删除,把新的db1.mdb 压缩成你要用的数据库名称.因为Access 数据库在使用的时候,会发生表损坏等一些复杂的事情,尤其是多个用户在共享操作时.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-11-03
展开全部
用vb在access的一个表中抽取数据添加到另一个表中,调用第二表时显示记录为空?
这根本就不是句人话。
回去复读小学语文吧
这根本就不是句人话。
回去复读小学语文吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你先单击Command1
难道没有提示错误?
难道没有提示错误?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询