|
上次因为碰到: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告诉我后就基本上解决拉。
本内容纯属菜鸟分享。不足地方还请大家指出。我的目的也就是自己走错的地方说出来能让更多的人不会郁闷。 |
|