设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[ADO/DAO] 请问怎样在DAO中使用查询?

[复制链接]
跳转到指定楼层
1#
发表于 2003-9-26 00:16:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在服务器上的access数据库只存放表。想通过DAO来访问远程数据库。在本地程序中建立了几个更新查询和添加查询。请问怎样在DAO中掉用这些查询。还是只能通过写SQL语句来在DAO中进行查找?在单机版时可以使用openquery“查询“ 来调用查询。但是把数据库放到服务器上怎样用DAO来做啊?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2003-9-26 18:22:00 | 只看该作者
你是局域网还是因特网链接,前者只要用链接表就OK,和本地一样用,如是后者,很麻烦。
3#
 楼主| 发表于 2003-10-16 19:37:00 | 只看该作者
版主我是用的局域网。可是我想不用链接表而用DAO或者ADO行吗?链接表需要我在每台终端上都设置一边。我想用DAO来在代码里设置\\server\aa.mdb$\表 这种形式。进行访问,这样降低通信流量。我想如果我只是需要服务器上的一条数据的话,只需要用DAO的查询把一条数据找出来,但是就是不知道怎样把它放到本地的TEMP表里?还有就是如果这样放进去了,在编辑完后又怎样把它更新到服务器上?

还有个问题是我过去在本地建立的查询使用\\server\aa.mdb$\表 形势设置数据源是不能查询服务器上的数据库的表吗?
4#
发表于 2003-10-17 03:46:00 | 只看该作者
如果要把\\server\aa.mdb$\表放到本地的TEMP表中
這樣做應該很簡單,不用設定繁復的代碼:

INSERT INTO TEMP
SELECT a.*
FROM a IN '\\PMC-02\共享\TEST1.MDB'[Provider=Microsoft.Jet.OLEDB.4.0];
];

想要傳回指定條件的記錄,加上WHERE等語名就可以了,
....

5#
发表于 2003-10-17 03:52:00 | 只看该作者
要存回去也是一樣
可使用更新查詢或新增查詢

INSERT INTO [Provider=Microsoft.Jet.OLEDB.4.0].a IN '\\PMC-02\共享\TEST1.MDB'[Provider=Microsoft.Jet.OLEDB.4.0]
SELECT a.*
FROM a;
6#
 楼主| 发表于 2003-10-17 19:50:00 | 只看该作者
照你的方法做了。没成功。通过了但是在本地的TEMP表里没有数据。
DoCmd.RunSQL "insert into Cost_Temp select Cost.* from Cost IN '\\cnshpdc\process sheet$\sapmmp.MDB [Provider=Microsoft.Jet.OLEDB.4.0]' where Cost_No='" & 文本7 & "'" 帮我看看对不对?
7#
发表于 2003-10-17 21:35:00 | 只看该作者
這樣做沒可以成功:
1.引號有問題,應如下:
DoCmd.RunSQL "insert into Cost_Temp select Cost.* from Cost IN '\\cnshpdc\process sheet$\sapmmp.MDB'[Provider=Microsoft.Jet.OLEDB.4.0] where Cost_No='" & 文本7 & "'"

2.文本7的值應為字符,cost_no也應為字符..
8#
 楼主| 发表于 2003-10-17 22:14:00 | 只看该作者
Private Sub Import_Click()

Me.Refresh
If 文本7 = "" Or IsNull(文本7) Then
            MsgBox "请输入成本中心代码!", vbOKOnly + vbInformation, "提示"
            文本7.SetFocus
Else
            
            
             DoCmd.SetWarnings False
             DoCmd.RunSQL "delete * from Cost_Temp"
                     
              DoCmd.RunSQL "insert into Cost_Temp select Cost.* from Cost IN '\\cnshpdc\process sheet$\sapmmp.MDB'[Provider=Microsoft.Jet.OLEDB.4.0] where Cost_No='" & 文本7 & "'"         
         DoCmd.SetWarnings True
End If
Me.Requery
If (Me.复选94 = True) Then
        Form.AllowEdits = False
    Else
        Me.AllowEdits = True
End If
End Sub

还是在temp里不能加入。但是当我把Me.Refresh注销后就能加入。但是会出现两行数据
9#
发表于 2003-10-17 22:19:00 | 只看该作者
重復的兩行數據嗎.,不會吧...
是不是規格則問題,,,
要不你把COST_TEMP做成子表單,在里面編輯....
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-21 16:31 , Processed in 0.096479 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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