设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[其它] [分享]菜鸟回报--跨据库动态更新追加

[复制链接]
跳转到指定楼层
1#
发表于 2006-2-24 01:47:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
上次因为碰到:1个库与另外一个库之间数据交流比较多并且2个库的位置不固定故需要做位置动态变化的追加查询才行。我比较菜用不来大段大段的VBA。后来发帖子后受到skylark的启示终于圆满解决问题 现在我把我的经验分享给大家

1。动态的查询主要是利用VBA来实现的。我的做法是首先用查询向导做出自己需要的查询。然后在查询设计窗体里面选SQL视窗,取得需要的查询代码。然后再VBA里面

一、如果是从自己的库向别的库比如从自己的库的“表1”追加数据到别的库的“表2”

DIM stsql as string

stSQL = "INSERT INTO 表2 ( 姓名, 年龄 ) IN '" & Me.路径 & "' SELECT  表1.姓名, 表1.年龄 FROM 表1;"
        DoCmd.RunSQL stSQL

二、如果是从外部的库的“表2”追加数据到自己的的库的“表1”

mysql = "INSERT INTO 表1 ( 姓名,年龄 )  SELECT 表2.姓名,表2.年龄 FROM [" & Me.路径 & "].表2 ;"

DoCmd.RunSQL stSQL

这里红字部分就是路径。这个是关键。

路径获得方法我知道2个。

1.Sub Main()

    Dim fd As FileDialog

    Set fd = Application.FileDialog(msoFileDialogFilePicker)

    Dim vrtSelectedItem As Variant
  
    With fd
        .AllowMultiSelect = False
        .InitialFileName = CurrentProject.Path

        If .Show = -1 Then

            For Each vrtSelectedItem In .SelectedItems
            Me.目标路径 = vrtSelectedItem
            Next vrtSelectedItem
        Else
        End If
    End With
    Set fd = Nothing

End Sub

这个是现成函数。这个里面在VBA中需要引用一些插件。

2.参考罗斯文数据库里面有个什么员工照片更新的那么一个按钮的VBA代码。那个比较复杂。我用不来。

就这样我就完成了动态的跨库的互相的追加查询。效果很好,在不同计算机间也可以用。

这里SQL语句我就用向导做出来。不用动太多大脑。获取路径的方法skylark告诉我后就基本上解决拉。

本内容纯属菜鸟分享。不足地方还请大家指出。我的目的也就是自己走错的地方说出来能让更多的人不会郁闷。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2006-2-24 03:22:00 | 只看该作者
To wdh008:

感谢,其实我只是急于帮网友解决,胡乱抓的,实在见笑,只不过你乐于帮人的这分诚心我真的非常感动!

不少的日子没有这种感觉了,谢谢你!
3#
 楼主| 发表于 2006-2-24 18:48:00 | 只看该作者
我知道自己是菜鸟,不过希望其他人看看这个后,当遇到类似问题的时候不会郁闷很久
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-4 19:04 , Processed in 0.092991 second(s), 26 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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