盼!如何将Access一个表的内容复制到另个表中?
我这两个表的字段名一样,且都是字符型,不同的地方是源表的字段长度大于目标表的字段长度。各位大侠能不能给点代码? --------------------编程问答-------------------- 现在我是这样做的:Dim rssbb As New ADODB.Recordset
rssbb.Open "insert into sbb select byk.xh,byk.ksh,byk.xxdm,byk.xxmc,byk.xm,byk.xb,byk.zyh,byk.xz,byk.dqszj,byk.xxxs,byk.bxlx,byk.pycc,byk.pyccsx,byk.rxrq,byk.csrq,byk.sfzh,byk.byrq,byk.bjyjl,byk.zsbh,byk.xzxm,byk.bz from byk order by xh", database, adOpenKeyset, adLockOptimistic, 1
出错提示为:"字段太小不能接受所要添加的数据的值,试着插入或粘贴较少的数据。" --------------------编程问答-------------------- 用两个数据集,循环插入,插入时根据长度截取 --------------------编程问答-------------------- 能不能给点代码? --------------------编程问答-------------------- 或者你的QQ号 --------------------编程问答-------------------- 一、出现这个错误表示你的目标数据表中某些字段长度不够,你应该先检查一下两个表的字段。
二、长度符合后,还要判断目标数据表与源数据表(即你的SQL中的字段列表)的字段个数、类型是否一致。
做了以上两点,应该没问题。 --------------------编程问答-------------------- 对啦,你说源表的字段长度大于目标表,如果不想修改目标表的字段长度,那么你必须保证目标表的字段能存放下使用Trim截取空格后的数据,否则,必须修改目标表的长度。 --------------------编程问答-------------------- 下面是部分代码,仅供参考,是把adojnb表插入adojna表
Dim lngCount As Integer
Dim a, b, i As Integer
Dim excel As String
With ADOjnb
If .State = adStateOpen Then
Set .ActiveConnection = Nothing
.Close
End If
.ActiveConnection = ADOsdb
.CursorLocation = adUseClient '这里一定要写aduseclient,我试了另外几种都不行
.CursorType = adOpenStatic
.LockType = adLockOptimistic
.Open "SELECT * From db order by 序号", Options:=adCmdText
End With
If sfile = "" Then
MsgBox "您选择的EXCEL表不存在,请重新导入!", vbInformation, "抱歉!"
Exit Sub
End If
a = 1
For i = 1 To 50
a = InStr(a, sfile, "\")
If a = 0 Then
excel = Mid(sfile, b) & sheet
Exit For
End If
a = a + 1
b = a
Next
With ADOjna
If .RecordCount > 0 Then
.MoveFirst
.Find "bm ='" & excel & "'"
If .EOF = False Then
If .Fields("bm").Value = excel Then
MsgBox "该表已经被添加,请您选择另一张表!", vbInformation, "抱歉!"
Exit Sub
End If
End If
End If
End With
ADOjnb.MoveFirst
Do Until ADOjnb.EOF
ADOjna.AddNew
ADOjna![序号] = IIf(IsNull(ADOjnb![序号]), "", ADOjnb![序号])
ADOjna![客户名称] = IIf(IsNull(ADOjnb![用户姓名]), "", ADOjnb![用户姓名])
ADOjna![地区或受理局] = IIf(IsNull(ADOjnb![地区名称]), "", ADOjnb![地区名称])
ADOjna![固定电话] = IIf(IsNull(ADOjnb![上网帐号]), "", ADOjnb![上网帐号])
ADOjna![联系电话] = IIf(IsNull(ADOjnb![联系电话]), "", ADOjnb![联系电话])
ADOjna![登记编号] = IIf(IsNull(ADOjnb![BSS业务流水号]), "", ADOjnb![BSS业务流水号])
ADOjna![送货地址] = IIf(IsNull(ADOjnb![地址]), "", ADOjnb![地址])
ADOjna![宽带类型] = IIf(IsNull(ADOjnb![宽带类型]), "", ADOjnb![宽带类型])
ADOjna![受理时间] = IIf(IsNull(ADOjnb![受理时间]), "", ADOjnb![受理时间])
ADOjna![受理工号] = IIf(IsNull(ADOjnb![受理工号]), "", ADOjnb![受理工号])
ADOjna![机型] = IIf(IsNull(ADOjnb![机型]), "", ADOjnb![机型])
ADOjna![机型序列号] = IIf(IsNull(ADOjnb![机型序列号]), "0", ADOjnb![机型序列号])
ADOjna![显示器] = IIf(IsNull(ADOjnb![显示器]), "", ADOjnb![显示器])
ADOjna![显示器序列号] = IIf(IsNull(ADOjnb![显示器序列号]), "0", ADOjnb![显示器序列号])
ADOjna![送货时间] = IIf(IsNull(ADOjnb![送货时间]), "1999-1-1", ADOjnb![送货时间])
ADOjna![安装情况] = IIf(IsNull(ADOjnb![安装情况]), "", ADOjnb![安装情况])
ADOjna![原由] = IIf(IsNull(ADOjnb![原由]), "", ADOjnb![原由])
ADOjna![完工时间] = IIf(IsNull(ADOjnb![完工时间]), "", ADOjnb![完工时间])
ADOjna![安装工程师] = IIf(IsNull(ADOjnb![安装工程师]), "", ADOjnb![安装工程师])
ADOjna![满意度] = IIf(IsNull(ADOjnb![满意度]), "", ADOjnb![满意度])
ADOjna![地区] = IIf(IsNull(ADOjnb![地区]), "", ADOjnb![地区])
ADOjna![其它] = IIf(IsNull(ADOjnb![其它]), "", ADOjnb![其它])
ADOjna![bm] = IIf(IsNull(excel), "", excel)
ADOjna![excel] = IIf(IsNull(Mid(sfile, b)), "", Mid(sfile, b))
ADOjna![sheet] = IIf(IsNull(sheet), "", sheet)
If ADOjnb![机型] = "g2006cn" Or ADOjnb![机型] = "g2016cn" Or ADOjnb![机型] <> "" Then
ADOjna![zjs] = 1
Else
ADOjna![zjs] = 0
End If
If ADOjnb![显示器] = "hpvs17e" Or ADOjnb![显示器] = "hpmx705" Or ADOjnb![显示器] = "hpmx705e" Or ADOjnb![显示器] <> "" Then
ADOjna![xsqs] = 1
Else
ADOjna![xsqs] = 0
End If
ADOjna.UpdateBatch
ADOjnb.MoveNext
Loop
With ADOjna
If .State = adStateOpen Then
Set .ActiveConnection = Nothing
.Close
End If
.ActiveConnection = ADOsdb
.CursorLocation = adUseClient '这里一定要写aduseclient,我试了另外几种都不行
.CursorType = adOpenStatic
.LockType = adLockOptimistic
.Open "SELECT * From dnhzb order by 序号", Options:=adCmdText
End With
--------------------编程问答-------------------- 这个简单啊,网上搜一下就得到答案了. --------------------编程问答-------------------- 关注 接分 --------------------编程问答-------------------- 类似的问题在 http://topic.csdn.net/u/20080424/10/e065abfa-222b-461a-81bf-fa1990fb742f.html 中的7楼已经回答过了,你看过回复没有?
补充:VB , 数据库(包含打印,安装,报表)