Office中国论坛/Access中国论坛

标题: 请问怎样在DAO中使用查询? [打印本页]

作者: fala    时间: 2003-9-26 00:16
标题: 请问怎样在DAO中使用查询?
我在服务器上的access数据库只存放表。想通过DAO来访问远程数据库。在本地程序中建立了几个更新查询和添加查询。请问怎样在DAO中掉用这些查询。还是只能通过写SQL语句来在DAO中进行查找?在单机版时可以使用openquery“查询“ 来调用查询。但是把数据库放到服务器上怎样用DAO来做啊?
作者: zhengjialon    时间: 2003-9-26 18:22
你是局域网还是因特网链接,前者只要用链接表就OK,和本地一样用,如是后者,很麻烦。
作者: fala    时间: 2003-10-16 19:37
版主我是用的局域网。可是我想不用链接表而用DAO或者ADO行吗?链接表需要我在每台终端上都设置一边。我想用DAO来在代码里设置\\server\aa.mdb$\表 这种形式。进行访问,这样降低通信流量。我想如果我只是需要服务器上的一条数据的话,只需要用DAO的查询把一条数据找出来,但是就是不知道怎样把它放到本地的TEMP表里?还有就是如果这样放进去了,在编辑完后又怎样把它更新到服务器上?

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

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

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


作者: ADAM    时间: 2003-10-17 03:52
要存回去也是一樣
可使用更新查詢或新增查詢

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

作者: fala    时间: 2003-10-17 19:50
照你的方法做了。没成功。通过了但是在本地的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 & "'" 帮我看看对不对?
作者: ADAM    时间: 2003-10-17 21:35
這樣做沒可以成功:
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也應為字符..
作者: fala    时间: 2003-10-17 22:14
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注销后就能加入。但是会出现两行数据
作者: ADAM    时间: 2003-10-17 22:19
重復的兩行數據嗎.,不會吧...
是不是規格則問題,,,
要不你把COST_TEMP做成子表單,在里面編輯....




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