Office中国论坛/Access中国论坛

标题: [分享]菜鸟回报--跨据库动态更新追加 [打印本页]

作者: wdh008    时间: 2006-2-24 01:47
标题: [分享]菜鸟回报--跨据库动态更新追加
上次因为碰到: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告诉我后就基本上解决拉。

本内容纯属菜鸟分享。不足地方还请大家指出。我的目的也就是自己走错的地方说出来能让更多的人不会郁闷。
作者: skylark    时间: 2006-2-24 03:22
To wdh008:

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

不少的日子没有这种感觉了,谢谢你!
作者: wdh008    时间: 2006-2-24 18:48
我知道自己是菜鸟,不过希望其他人看看这个后,当遇到类似问题的时候不会郁闷很久




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3