您好!我想象你请教怎样将EXCEL中的数据导入到vb的ACCESS中,重复数据只导入一条啊,谢谢。

作者&投稿:逮邓 (若有异议请与网页底部的电邮联系)
怎么用VB实现将EXCEL的数据导入到ACCESS? EXCEL中的重复数据只在ACCESS中显示一~

先在Module1中打入Option ExplicitPublic xlapp As Object 'Excel对象Public xlbook As Object '工作簿Public xlsheet As Object '工作表Declare Function FindWindow Lib "user32" Alias _"FindWindowA" (ByVal lpClassName As String, _ByVal lpWindowName As Long) As LongDeclare Function SendMessage Lib "user32" Alias "SendMessageA" _(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long然后新窗体中打入Dim f As IntegerSub GetExcel()Dim MyXL As Object '用于存放Microsoft Excel 引用的变量。Dim ExcelWasNotRunning As Boolean '用于最后释放的标记。 On Error Resume Next '延迟错误捕获。 '不带第一个参数调用Getobject函数将返回对该应用程序的实例的引用。 '如果该应用程序不在运行,则会产生错误。 Set MyXL = GetObject(, "Excel.Application") If Err.Number <> 0 Then ExcelWasNotRunning = True Err.Clear '如果发生错误则要清除 Err 对象。 '检测 Microsoft Excel。如果 Microsoft Excel 在运行,则将其加入运行对象表。 DetectExcel '该过程检测并登记正在运行的 Excel '设置其 Application 属性,显示 Microsoft Excel。 '然后使用 MyXL 对象引用的 Windows 集合,显示包含该文件的实际窗口。 MyXL.Application.Visible = True MyXL.Parent.Windows(1).Visible = True '如果在启动时,Microsoft Excel 的这份副本不在运行中, '则使用 Application 属性的 Quit 方法来关闭它。 '注意,当试图退出 Microsoft Excel 时, '标题栏会闪烁,并显示一条消息询问是否保存所加载的文件。 If ExcelWasNotRunning = True Then MyXL.Application.Quit End If Set MyXL = Nothing '释放对该应用程序和电子数据表的引用。End Sub'该过程检测并登记正在运行的 Excel。Sub DetectExcel()Const WM_USER = 1024Dim hwnd As Long'如果 Excel 在运行,则该 API 调用将返回其句柄。 hwnd = FindWindow("XLMAIN", 0) If hwnd = 0 Then '0 表示没有 Excel 在运行。 Exit Sub Else 'Excel 在运行,因此可以使用 SendMessage API'函数将其放入运行对象表。 SendMessage hwnd, WM_USER + 18, 0, 0 End IfEnd SubPrivate Sub cmdRun_Click()Dim intLow, intCol As Integer Call GetExcel Set xlapp = GetObject(App.Path + "\\轮滑社08招新成员.xls") '打开模扳文件 xlapp.Parent.Windows(1).Visible = True '使父窗体可见 Set xlsheet = xlapp.Application.Worksheets(1) '当前工作簿的第一页 Dim s1 s1 = xlsheet.Cells(f, j) '当前工作簿第一页的第I行第J列End Sub最后s1那就是从EXCEL的列、行取东东的.你可dim,s1,s2,s3......数据提取了,你可以用ADO导入.(s1,s2,s3放在已与ADO联接的TEXT上)接下来自己用循环做了 上网搜了个现成的 呵呵

把Excel数据导入到Access中的表1中,复制表1,粘贴的时候只保留表结构,起名表2
VB里面
insert into 表2 select 字段1,字段2,… from 表1 group by 字段1,字段2,…
这样就把重复的都过滤掉了

再把表2数据显示到Datagrid
adodc1.recordsource = "select * from 表2"
adodc1.refresh

给你段现成的代码,变量txtIN需通过input等赋值,变量sheet通过combo选择, 已通过测试。但重复数据这个要求没单做处理,其实可完全在excel中处理完成后再导入。
Private Sub Command1_Click()

'****************将EXCEL 表导入到 ACCESS**************************

Dim db As Database
Dim sheet As String, AccessTable As String
Dim sql As String
Dim a As Long
On Error GoTo ErrorHandler

a = MsgBox("您将从工作表[ " & Combo1.Text & " ]的第 " & txtIN & " 序号开始导入数据,确认吗?", vbYesNo, "数据导入确认")
If a = 7 Then
Exit Sub
ElseIf a = 6 Then

AccessPath = App.Path & "\SG_data.mdb" '数据库路径

If Combo1.Text = "" Then
MsgBox "请选择要导入的EXCEL工作表!"
Exit Sub
Else
sheet = Combo1.Text
End If

Set db = OpenDatabase(Excelpath, True, False, "Excel 8.0") '打开电子表格文件

If TableExists("tab_chuku") = True Then '判断表是否存在

' MsgBox "数据库中[" & AccessTablee & "]表已存在,将以插入的方式导入数据!"
sql = (" Insert into [;database=" & AccessPath & "]." & AccessTablee & " Select * FROM [" & sheet & "$] where [" & sheet & "$].序号 >= " & txtIN & "")
Else
MsgBox "数据库中[" & AccessTablee & "]表不存在,将创建新表!"
sql = (" Select * into [;database=" & AccessPath & "]." & AccessTablee & " FROM [" & sheet & "$] where 序号 >= " & txtIN & "")

End If

db.Execute (sql) '将电子表格导入数据库
end sub

'*********************************************************
'* 名称:TableExists
'* 功能:判断表是否存在(表名)
'* 用法:TableExists(表名) adoCN是一个SQL的连接
'*********************************************************
Public Function TableExists(AccessTable As String) As Boolean
Dim rstSchema As New ADODB.Recordset
AccessPath = App.Path & "\sg_data.mdb"
Set cnn = New ADODB.Connection
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & AccessPath & " ;Persist Security Info=False"

Set rstSchema = cnn.OpenSchema(adSchemaTables)
rstSchema.Find "TABLE_NAME='" & AccessTable & "'"

AccessTablee = AccessTable '将表名变量赋给数据库表名

If rstSchema.EOF Then
TableExists = False
Else
TableExists = True
End If
rstSchema.Close
End Function
'*********************************************************

access中有个导入
打开后在下拉框中选excel的那项,再找到药导入的文件,点确定就可以了。

用VB程序导入,VB可以打开Excel数据的


亲,你好!我准备今年2013下半年结婚,想像你请教下结婚吉日。男:阴历84年...
择吉日行事是中国人的民俗传统。结婚登记(订婚)和举行婚姻仪式是夫妻双方一生中的大事,最好都择吉日进行。如要取舍的话,便应以迎亲及摆酒的传统礼仪当日为准,选在吉日举行,因为中国传统始终视这天为真正婚嫁日。良辰吉时计算的方法是,用男、女双方的出生日期时间推算出最吉利的婚嫁时日,这个「吉日...

你好,向你请教一下,我想像你说那的样做,但是光标一到开始那里就变成一个...
命令输入回车后是要等一会。因要扫描系统和修复系统。不要心急。

我有个感情想像你请教,希望能得到你的帮助?
刚谈恋爱你就凶她换谁也受不了夲来谈恋爱期间女孩都向男孩撒桥的你这种方式女孩都不会跟你谈,你想好好谈恋爱换方式先了解对方性格别啥也不了解就开玩笑,开过火就会伤人的你得学会有分寸去给女孩谈恋爱学会说暖心的话做暖心的事女孩就会喜欢你的好好想想学成熟点。

你好,想像您请教下,阳历2012年6月27日(农历五月初九)下午4点25分出生的...
林轩宇 林旭杰

...您回答的问题'觉得你很聪明好棒好厉害'想像您请教一个问题'希望您能...
从头开始吧,忘记他吧。就当他只是你那一个时期的一段感情寄托而已。祝你早日找到真爱。

看了你回答别人的问题,我想像你请教啊
一般充电电池有个特性,新买的电池前三次一点要完全用完电以后,在一次性充电12小时以上(就是不满12小时最好别使用,中间断电继续再充没事),以后就可以随意充电和使用。要是不按照上述方法使用,会影响电池的性能

你好!我最近在学随机分析,遇到了些困难想像你请教一下。
这个你不妨参考一下黄志愿的随机分析,还有麦考斯基,施瑞伍他们的书。我觉得让我证明,肯定要用。hold,fubini定理就可以完成。你用手机在这儿上个图片咱们看看。

请教别人问题怎么表达谢意比较合理?
我们向别人请教问题,不管最后别人有没有帮助到我们,但是他们都是用心的帮我们了,所以我们也应该从内心向他们表示谢意,而且一定要发自内心而不是敷衍了事。我认为表达谢意的方式有以下几种。请他们吃吃饭聊聊天,在这个过程中你就可以和他沟通一下情感,也表达你的谢意。这个方式就可以在你向他请教...

你好,看到你之前的有个回答非常精彩,想像你继续请教
其实很多东西现在都没用了,留着的目的只有一个,像你那么好的人,也曾如此认真的对待过我。8、你是什么样的人,就会遇见什么样的人。你的朋友是什么样的人,你就会成为什么样的人。你的爱人是什么样的人,你就会过什么样的人生。护好了他们,也就是成全了自己。9、你会渐渐明白,失败不算什么,因为它好过你曾...

你好,我是2013年毕业生,想像您请教一下,阳城电厂的薪水待遇问题,哪个...
发电部工资最高,因为发电部属于运行,有夜班,五值三运,而特别是发电一部用的是德国的进口设备,效益还可以!阳城电厂在山西省来说是NO.1,欢迎你来阳电工作!有什么不明白的可以私信我 分给我吧

寒亭区15787539401: 你好!我想请教一下怎么用Excel软件将一份列表按每行信息单独建立一个独立的固定格式表格? -
种振悉美: 如果这些独立的表格是用打印的比如你有一张员工信息表汇总表,一行是一个人的信息你想设计一张个人信息表,每个人是单独的...

寒亭区15787539401: 你好!我想请教你一个问题!如何用excel把下列数据只用一张饼图表示! -
种振悉美: 选中你所有的数据,”比例“列不选,然后点”插入“--”图表”,在对话框中选“数据标志”,在其中勾选“类别名称”,“下一步”,确定.

寒亭区15787539401: 你好,我想请教下,EXCEL中如何合并相同两行的数据并计算出他们的和?谢谢啦 很急啊 -
种振悉美: 方法一:排序,然后数据——分类汇总.方法二:数据——合并计算,函数:求和,选中数据区域,添加到引用,标签:左列,确定.方法三:选列出项目名称,用公式:=SUMIF(A:A,"电脑",B:B)"电脑"可用单元格引用.

寒亭区15787539401: 你好!我想请教你一个问题!如何用excel把下列数据只用一张饼图表示! -
种振悉美: 1、选中数据区域后,点击菜单柱形图标,按照提示操作就可以完成了 2、你还可根据需要制作成折线图、饼图等

寒亭区15787539401: 你好,我想向你请教Excel里柱型图的制作方法 -
种振悉美: 选中你的数据--插入--柱形图 然后选择你喜欢的柱形图类型就可以了

寒亭区15787539401: 你好,我想向你请教一下excel打括号怎么才能不自动跳到前面一格 -
种振悉美: 设置-高级-智能标点设置里把'中文状态下快速输入成对标点'点掉就行了

寒亭区15787539401: 我想像你请教在EXCEL图表中怎么做筛选 -
种振悉美: 只能通过筛选之后的对象来做图表了,只不过做筛选对象的时候做成下拉菜单的样式

寒亭区15787539401: 您好!我遇到了一个excel的问题,诚心向您请教. -
种振悉美: 多行变成一行,可以用转置的方法,若不会可以在百度里搜索,方法非常简单!但是,我猜想你的意思是要将多行内容合并在一个单元格里!给你写了一个公式!第一步,打开导出Excel表册,按ALT+F11进入VBE模式,点击插入模块,将以下...

寒亭区15787539401: 请教如何合并将excel表1,表2,合并成表3形式: -
种振悉美: 假设表1叫Sheet1,表2叫Sheet2,数据都在A到B列. 右键点表1的A列,复制;到表2,右键点单元格A1,粘贴. 在B1、C1输入 上月数量、本月数量 在B2输入 =VLOOKUP(A2,Sheet1!A:B,2,0) 在C2输入 =VLOOKUP(A2,Sheet2!A:B,2,0) 选中B2到C2,鼠标移到C2右下角,双击那个“+”,完成.

寒亭区15787539401: 你好,我想请教一下,在excel中怎么把ABCD替换成对应的分数,然后我再计算每个人的总分? -
种振悉美: ctrl+F,弹出查找与替换窗口,选上你要替换的区域,然后依次把字母替换成相应的数字就行了

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网