设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 839|回复: 7
打印 上一主题 下一主题

[窗体] 用ADO导入记录的问题?

[复制链接]
跳转到指定楼层
1#
发表于 2008-5-20 07:57:14 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
因为有特殊用途,用ADO代码将表2的记录中学号不在表1的记录导入表1,然后在表2与表1相同学号记录中的备注写入“重复”,我的代码不能运行,请大家帮忙看一下。谢谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
8#
 楼主| 发表于 2008-5-20 14:27:27 | 只看该作者
之所以绕了这么一个大圈子,目的就是要在子窗体上实时反映出哪些记录没有导入(将导入的去掉更好),这样一目了然。如果不在窗体上反映的话,当然就很简单了,难就难在这里!我将代码改了一下,可以运行,但不能得到完全正确的结果,还要请大家指点!
Private Sub ado导入_Click()
Dim i As Integer
Dim j As Integer
Dim Rsdljl As ADODB.Recordset
Dim Rsjfmd As ADODB.Recordset
Set Rsdljl = New ADODB.Recordset
Set Rsjfmd = New ADODB.Recordset
Rsdljl.Open "b2", CurrentProject.Connection, adOpenKeyset, adLockOptimistic

Rsjfmd.Open "b1", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
Rsdljl.MoveFirst
Rsjfmd.MoveFirst
For i = 1 To Rsdljl.RecordCount
    'Rsjfmd.MoveFirst
    For j = 1 To Rsjfmd.RecordCount

       If Rsdljl(1).Value <> Rsjfmd(1).Value Then
       Rsjfmd.AddNew
       Rsjfmd("学号") = Rsdljl("学号")
       Rsjfmd("姓名") = Rsdljl("姓名")
       Rsjfmd.Update
       'Exit For
       ElseIf Rsdljl(1).Value = Rsjfmd(1).Value Then
       Rsdljl(3).Value = "重复"
       Rsdljl.Update
       End If
       'Rsjfmd.MoveNext
    Next j
    Rsdljl.MoveNext
    Next i
    Rsdljl.Close
    Rsjfmd.Close
    Set Rsdljl = Nothing
    Set Rsjfmd = Nothing
    MsgBox "导入完毕"

End Sub
7#
发表于 2008-5-20 14:08:39 | 只看该作者
原帖由 yanlj518 于 2008-5-20 11:16 发表
因为有其它作途,要用ADO,能赐教吗?


SELECT b2.ID, b2.学号, b2.姓名
FROM b2
WHERE (((b2.学号) Not In (select 学号 from b1)));

上面的语句为: B2有记录,而B1没记录, 如果一定要用ADO把上面的语句写到B1就行了

Dim Sql As String
Dim Rs As New ADODB.Recordset
Dim Rsc As New ADODB.Recordset
Dim Conn As New ADODB.Connection
Set Conn = CurrentProject.Connection
Sql = "SELECT b2.ID, b2.学号, b2.姓名 FROM b2 WHERE b2.学号 Not In (select 学号 from b1)"
Rs.Open Sql, Conn, adOpenKeyset, adLockOptimistic
Rsc.Open "select * from b1", Conn, adOpenDynamic, adLockOptimistic
Do While Not Rs.EOF
   Rsc.AddNew
   Rsc.Fields("学号") = Rs.Fields("学号")
   Rsc.Fields("姓名") = Rs.Fields("姓名")
   Rsc.Update
   Rs.MoveNext
Loop
Rs.Close
Rsc.Close
Set Rs = Nothing
Set Rsc = Nothing
6#
 楼主| 发表于 2008-5-20 13:50:22 | 只看该作者
自己顶一下吧!
5#
 楼主| 发表于 2008-5-20 12:01:20 | 只看该作者
郁闷,近来问题一个也没解决!
4#
 楼主| 发表于 2008-5-20 11:16:33 | 只看该作者
因为有其它作途,要用ADO,能赐教吗?
3#
发表于 2008-5-20 09:52:22 | 只看该作者
第一个问题直接用追加查询
INSERT INTO b1 ( ID, 学号, 姓名 )
SELECT b2.ID, b2.学号, b2.姓名
FROM b2
WHERE (((b2.学号) Not In (select 学号 from b1)));
2#
发表于 2008-5-20 08:19:59 | 只看该作者
学习下啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-9-21 17:39 , Processed in 0.136776 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表