Foxtable(狐表)用户栏目专家坐堂 → 数据库1中的表A选定行复制或者导入到数据库2的表B


  共有5609人关注过本帖树形打印复制链接

主题:数据库1中的表A选定行复制或者导入到数据库2的表B

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/17 8:51:00 [显示全部帖子]


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/17 15:37:00 [显示全部帖子]

一样的用法,添加2个数据源,把表A和表B都作为外部表加进来即可

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/18 20:23:00 [显示全部帖子]

发代码提示错误的原因:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=69632

1、肯定可以使用副本,http://www.foxtable.com/webhelp/topics/1906.htm,先仔细看过帮助,副本名称用法仅适用table,不能使用datatable,datatable还是原表名称
2、连接不同数据库请使用不同的SQLcommand变量,

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/18 21:09:00 [显示全部帖子]

getcheckedrows 使用table

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/18 21:16:00 [显示全部帖子]

不是这一句的错误,是后面的遍历表格列使用的Datatables("销售查询_Table1").datacols出错,改为

Tables("销售查询_Table1").Datatable.datacols

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/18 21:26:00 [显示全部帖子]

If Connections.Contains("Invoice")=False
    Connections.Add("Invoice","Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\数据库2.mdb;Persist Security Info=False")
End If

Dim
 cmd As New SQLCommand

cmd.ConnectionName = 
"
Invoice"
cmd.CommandText = 
"SELECT * From {
销售订单} "
Dim dt1 As DataTable = cmd.ExecuteReader(true)
cmd.CommandText = "SELECT * From {销售订单明细} where 1=2" '自己改为正确的数据库2明细表名称
Dim dt2 As DataTable = cmd.ExecuteReader(true)

For Each dr As Row In Tables("销售查询_Table1").GetCheckedRows()
    If dt1.Find("订单号 = '" & dr("订单号") & "'") Is Nothing Then
        Dim nr As DataRow = dt1.AddNew()
        For Each dc As Col In Tables("销售查询_Table1").Cols
            nr(dc.name) = dr(dc.name)
        Next
        
        For Each dr3 As DataRow In dr.DataRow.GetChildRows("销售明细表")
            Dim nr2 As DataRow = dt2.AddNew()
           For Each dc2 As DataCol In DataTables("销售明细表").DataCols
                nr2(dc2.name) = dr3(dc2.name)
            Next
        Next
    End If
Next
dt1.Save
dt2.Save
[此贴子已经被作者于2021/5/18 21:26:25编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/19 9:55:00 [显示全部帖子]

到数据库里看看,应该列名不对

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/20 22:04:00 [显示全部帖子]

添加外部表的时候改名了吧,从外部表管理删除这个外部表,然后重新添加回来

 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/23 21:28:00 [显示全部帖子]

建议改为SqlServer数据库

access数据库的并发数很少的,同时如果A用户连接数据库并且做长时间的操作,会阻塞导致其它用户的操作。

 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/23 21:56:00 [显示全部帖子]

试试不要使用Connections.Add动态添加数据源,直接在菜单里添加数据源。

改为sqlserve应该不需要改太多代码的,主要是逻辑列和日期列的差异:http://www.foxtable.com/webhelp/topics/2343.htm

 回到顶部
总数 23 1 2 3 下一页