设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 1617|回复: 15
打印 上一主题 下一主题

[Access本身] 各们高手请帮忙!如何在ACCESS中取得EXCEL中的工作表名称?

[复制链接]
跳转到指定楼层
1#
发表于 2004-4-19 10:32:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想把ACCESS查询出的内容导出到EXCEL的工作表中,以第个月名称来起名,现在我想在导出先查一查EXCEL表中的是已有了这个月的内容.

还有就是这个导出事件可不可不用手工,用日期来定,如果到了那日期,就自动导了的?
还有一个简单的问题,但我不会做:如果比较两个字符串是否相同?

这个功能可能实现吗?请各位帮忙!




[此贴子已经被作者于2004-4-19 3:17:51编辑过]

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2004-4-19 16:39:00 | 只看该作者
不如一個月作一個xls文件
哪就是判斷導出的目錄里有沒有這個日期的文件名呀.
Set fso = CreateObject("Scripting.FileSystemObject")
Filename = "D:\DATA\" & year(now() & month(now() &".XLS"
If fso.FileExists(Filename) Then
   MsgBox ("該月結果已匯出")
Else
   MsgBox ("ok,按確定程序將為你匯出月分的資料")
End If
自動導出也不難呀,只要在進入程序後(密碼通過後)加一段
判斷日期是否為該導出的日期,是就導出呀.
StrComp 函數範例
本範例使用 StrComp 函數來比較兩個字串。如果第三個引數值為 1,字串是以 [文字比對] 的方式進行比較;如果第三個引數值為 0 或是省略掉,則以 [二進位比對] 的方式進行比較。

[文字比對] 方式會將大小寫字母視為一樣,但 [二進位比對] 方式則視為不同。

Dim MyStr1, MyStr2, MyComp
MyStr1 = "ABCD": MyStr2 = "abcd"    ' 定義變數。
MyComp = StrComp(MyStr1, MyStr2, 1)    ' 傳回 0。
MyComp = StrComp(MyStr1, MyStr2, 0)    ' 傳回 -1。
MyComp = StrComp(MyStr2, MyStr1)    ' 傳回 1。






[此贴子已经被作者于2004-4-19 9:08:20编辑过]

3#
 楼主| 发表于 2004-4-19 18:06:00 | 只看该作者
非常感谢你的帮忙!
但你说的自动导出是在一个事件中,但我想的是在就是没有打开数据库也可以导出的那一种。行不?
4#
发表于 2004-4-19 18:42:00 | 只看该作者
你總要打開個軟件吧 ?
ACCESS,EXCEL?
5#
发表于 2004-4-19 18:46:00 | 只看该作者
excel打開access資料microsoft有範例:samples.xls
你自己在sql語句中加一個按月份的查詢條件就行了.
Sub RetrieveAccessData()
'' 注意: 本段程式必須參照到下列最新版的程式館:
'''
''         Microsoft ActiveX Data Objects Library
     
   Dim conn As ADODB.Connection
   Dim rst As ADODB.Recordset
   Dim Nsql As String, Njoin As String, Ncriteria As String
   Dim NewBook As Workbook
   Dim i As Integer

    ' 建立連結物件.
    Set conn = New ADODB.Connection
    With conn
        ' 就連結設定 OleDB provider.
        .Provider = "Microsoft.JET.OLEDB.4.0"
        ' 開啟 Northwind.mdb 連結.
        .Open Application.Path & "\samples\northwind.mdb"
    End With

    Nsql = "SELECT DISTINCTROW 產品類別.類別名稱, 產品資料.產品, 產品資料.單位數量, 產品資料.單價 "
    Njoin = "FROM 產品類別 INNER JOIN 產品資料 ON 產品類別.類別編號 = 產品資料.類別編號 "
    Ncriteria = "WHERE ((([產品資料].不再銷售)=No) AND (([產品資料].庫存量)>20));"
   
    ' 建立新的 Recordset 物件.
    Set rst = New ADODB.Recordset
    With rst
        ' 將此一 recordset 連結至先前已開啟的連結.
        .ActiveConnection = conn
        ' 從 Custome 表格中存取所有資料記錄.
        .Open Nsql & Njoin & Ncriteria, conn, adOpenDynamic, adLockBatchOptimistic
    End With

    ' 在本活頁簿內增添一張新工作表.
    Set NewBook = Workbooks.Add
    ' 遞迴所有欄位,並將欄位名稱傳回到工作表內.
    For i = 0 To rst.Fields.Count - 1
        NewBook.Sheets(1).Range("a1").Offset(0, i).Value = rst.Fields(i).Name
    Next i
    ' 複製 recordset 到新工作表中.
    NewBook.Sheets(1).Range("a2").CopyFromRecordset rst

    ' 關閉 recordset.
    Set rst = Nothing
    ' 關閉連結.
    conn.Close
End Sub
6#
 楼主| 发表于 2004-4-19 18:54:00 | 只看该作者
您第五楼的是代码是关于在EXCEL中看ACCESS么?看得有点头晕。
我想不用那么复杂吧。你的意思是说不能在不找数据库的情况下自动导出喽?
7#
发表于 2004-4-19 19:13:00 | 只看该作者
select * into [Excel 8.0;database=导出目录].导出表名 from 表
8#
 楼主| 发表于 2004-4-19 19:23:00 | 只看该作者
呵,不是很明白!可不可以说详细一点?
9#
发表于 2004-4-19 21:16:00 | 只看该作者
在d根目錄下有一個dddd.mdb 內含yg表,輸出到d:\abc.xls

Dim Export_Str, mdbTable As String
Dim rsxport As New ADODB.Recordset
Dim conn As New ADODB.Connection
conn.Open "ROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=d:\dddd.mdb;"
Export_Str = "select * into [Excel 8.0;database=d:\abc.xls ].YG from YG"
rsxport.Open Export_Str, conn, adOpenStatic, adLockOptimistic
你必須打開這個程序,不管你是vb做還是access做出來,程序不會自動執行.
它只能做到不用你手動打開你要導出數據哪個mdb文件.




[此贴子已经被作者于2004-4-19 13:21:41编辑过]

10#
发表于 2004-4-19 21:22:00 | 只看该作者
作个VBS或者WSH脚本文件,用WINDOWS的任务计划自动执行
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-15 12:04 , Processed in 0.103719 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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