『壹』 VB 查閱 Excel 文件
思路:
1.取得excel對象,然後控制該對象,讀取該對象的所有工作表,並寫入listbox,
2.當在用戶listbox選取某一工作表時,用ADODC控制項連接excel,再把DataGrid綁定ADODC控制項,通過DataGrid顯示表內的數據
*詳細方法如下*
建一個窗體:
增加listbox,dataGrid,adodc
控制項各1個
窗體內代碼如下
Option
Explicit
Public
path
As
String
'excel文件路徑
Private
Sub
Form_Load()
Dim
myexcel
As
New
Excel.Application
Dim
mybook
As
Workbook
Dim
mysheet
As
Worksheet
Dim
su,
j
As
Long
'excel表路徑
path
=
"D:\我的文檔\3000條新書無資料11_3.xls"
Set
mybook
=
myexcel.Workbooks.Open(path)
'遍歷每個工作表,取出所有表名
Dim
a
As
Worksheet
For
Each
a
In
mybook.Sheets
'在此循環里,你可以添加到listbox控制項
List1.AddItem
a.Name
'
MsgBox
a.Name
'顯示工作表的名稱
'
MsgBox
a.Range("a1")
'顯示A1單元格
Next
mybook.Close
Set
mysheet
=
Nothing
Set
mybook
=
Nothing
Set
myexcel
=
Nothing
End
Sub
Sub
List1_Click()
'單擊listbox的表名時
Dim
Conn
As
New
ADODB.Connection
Dim
rs
As
New
ADODB.Recordset
Dim
sql
As
String,
strSheetName
As
String
strSheetName
=
List1.Text
Sql
=
"select
*
from
["
&
strSheetName
&
"$]"
'指定EXCEL表
Adodc1.ConnectionString
=
"Provider=Microsoft.Jet.OLEDB.4.0;Persist
Security
Info=False;Data
Source="
&
path
&
";Extended
Properties='Excel
8.0;HDR=Yes'"
'連接EXCEL文件
Adodc1.RecordSource
=
Sql
Set
DataGrid1.DataSource
=
Adodc1
Adodc1.Refresh
End
Sub
『貳』 剛才看到vb使用sql語句查詢excel的問題,您是怎麼解決的啊
Adodc1.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;PersistSecurityInfo=False;DataSource=H:ook1.xls"&";ExtendedProperties='Excel8.0;HDR=Yes'"
sql="selectD880from[Sheet1$]whereTE='"&Trim(ts.Text)&"'"
Adodc1.RecordSource=sql
Adodc1.Refresh
SetDataGrid1.DataSource=Adodc1
『叄』 vb 執行sql語句得到的結果集怎樣輸出到excel單元格中
可以,在vb窗口建個datagrid,adodc,用adodc綁定你的資料庫,datagrid的DataSource選擇那個adodc,這樣就能把記錄集中的數據顯示在datagrid表格中,然後再把datagrid表格中的查詢結果導入到Excel中,把datagrid導入到Excel的代碼如下:
DimexAsObject
DimiAsInteger
DimjAsInteger
DimXlAppAsExcel.Application
DimxlBookAsExcel.Workbook
DimxlSheetAsExcel.Worksheet
SetXlApp=CreateObject("Excel.Application")
XlApp.Visible=True
SetxlBook=XlApp.Workbooks.Add
SetxlSheet=xlBook.Worksheets(1)
Fori=0ToDataGrid1.Columns.Count-1
Forj=0ToDataGrid1.ApproxCount-1
DataGrid1.Col=i
OnErrorResumeNext
DataGrid1.Row=j
xlSheet.Cells(j+1,i+1)=DataGrid1.Columns.Item(i).Text
Nextj
Nexti
上述代碼可以做進按鈕里,記得引用裡面添加Excel的dll
望採納
『肆』 VB查詢SQL資料庫然後在寫到Excel表中
select
*
from
表名
where
時間欄位名
between
'2010-7-29
13:00:00'
and
'2010-7-29
14:00:00'
然後再寫一個方法把取出來的數據寫到Excel裡面就行。
[email protected]
『伍』 vb查詢sql資料庫生成excel
上網上查一下VB操作excel程序,然後將你的rs記錄集循環向每行每列賦值就好了。
『陸』 如何用VB製作簡單的查詢程序,查詢EXCEL表格中的內容並顯示出結果
n Explicit
Private objSWbemServices As SWbemServices '
Private WithEvents DeleteProcessEvent As SWbemSink '進程結束監控
Dim xlApp As Excel.Application '定義EXCEL類
Dim xlBook As Excel.Workbook '定義工件簿類
Dim xlsheet As Excel.Worksheet '定義工作表類
Private Sub Initial(ss As String)
Dim i, j As Integer
Set xlApp = CreateObject("Excel.Application") '創建EXCEL應用類
'xlApp.Visible = True '設置EXCEL可見
'Set xlBook = xlApp.Workbooks.Open(App.Path + "\" & "106-33-LCDTest-20130202.csv") '打開EXCEL工作簿
Set xlBook = xlApp.Workbooks.Open(App.Path + "\" & ss) '打開EXCEL工作簿
Set xlsheet = xlBook.Worksheets(1) '打開EXCEL工作表
xlsheet.Activate '激活工作表
'-----正式統計數量
Text1.Text = xlsheet.UsedRange.Cells.Rows.Count
sun = xlsheet.UsedRange.Cells.Rows.Count
For i = 2 To xlsheet.UsedRange.Cells.Rows.Count - 1
If Format(xlsheet.Cells(i, 3), "mm/dd") = Format(Now, "mm/dd") Then '統計今天的數據
Select Case Format(xlsheet.Cells(i, 3), "hh")
Case 0, 1 '0-1點鍾數據統計
If xlsheet.Cells(i, 2) = "PASS" Then
Select Case xlsheet.Cells(i, 6)
Case 1
u(1, 1) = u(1, 1) + 1
Case 2
u(3, 1) = u(3, 1) + 1
Case 3
u(5, 1) = u(5, 1) + 1
Case 4
u(7, 1) = u(7, 1) + 1
Case Else
MsgBox "Nest異常", vbCritical, "消息提示:"
End Select
Else
。。。。。。。。。。。。。。。。。。。。。。。。
Else
Select Case xlsheet.Cells(i, 6)
Case 1
u(2, 12) = u(2, 12) + 1
Case 2
u(4, 12) = u(4, 12) + 1
Case 3
u(6, 12) = u(6, 12) + 1
Case 4
u(8, 12) = u(8, 12) + 1
Case Else
MsgBox "Nest異常", vbCritical, "消息提示:"
End Select
j = j + 1
End If
Case Else
'MsgBox "時間格式異常", vbCritical, "消息提示:"
End Select
End If
Next i
'-----------------------------------------------------------
'xlBook.Save '保存文件
xlBook.Close (True) '關閉工作簿
xlApp.Quit '結束Excel對象
Set xlApp = Nothing '釋放xlApp對象
'MsgBox "初始化完成", vbCritical, "消息提示:OK"
Text2.Text = Format(j / Text1.Text, "0.00%")
End Sub
『柒』 vb調用excel表查詢
中間部分的語句
Set conn = CreateObject("ADODB.Connection")
tns = excel的fullpath
With conn
.Provider = "Microsoft.ace.OLEDB.12.0"
.ConnectionString = "Data Source=" & tns & ";Extended Properties=Excel 12.0;"
.Open
End With
sql = "select 發車站, 終點,發車時間,車型, 票價,備注 from [data$] where 發車站='" & combo1 & "' and 終點 ='" & text & "'"
set myrs=conn.execute(sql)
if not myrs.eof
Dim excelApp As Object
Set excelApp = CreateObject("Excel.APPLICATION")
for i=1 to myrs.fields.count
excelapp.sheets(1).cells(1,i)=myrs.fields(i-1).name
next
excelapp.sheets(1).cells(2,1).CopyFromRecordset myrs
endif
set myrs=nothing
excelapp.quit
set excelapp=nothing
conn.close
set conn=nothing
『捌』 怎麼通過VB編程select語句來篩選Excel表格中的數據
核心步驟:1,講兩張數據表放進同一個excel文件內,可以在同一個sheet或者不同sheet。選擇對應的數據區域,右鍵,「定義名稱」。說明:這里,數據的第一行是列名,定義的名字,是表名。2、選擇「數據」——「其他來源」——「來自Microsoft
Query」。3、選擇「Excel
Files*
「那一項,並且把對話框下面的「使用「查詢向導」創建/編輯查詢」勾去掉。4、在彈出的對話框中將剛才我們命名的那兩個表都添加進去。5、點擊上邊的
SQL
按鈕,開始寫你的SQL語句吧。確定後下邊可以看到結果。6、如果你想導出數據,點擊「文件」——「將數據返回Microsoft
Excel」,建議選擇導入到新表中,OK
『玖』 vb如何將SQL資料庫查詢的結果導出到帶欄位名的Excel表
你在用CopyFromRecordset前先把欄位名寫上,然後換一行再把數據集拷貝就可以了。
===========================================================
先把這句mExcelFile.Application.Range("A1").CopyFromRecordset
mRs
改為:
mExcelFile.Application.Range("A2").CopyFromRecordset
mRs
然後在這句前面加上下面的代碼試試看,應該可以的:
For
i
=
0
To
mRst.Fields.Count
-
1
mExcelFile.ActiveSheet.Cells(1,
i
+
1).Value
=
mRst.Fields(i).Name
Next
'設置欄位名加粗(如果不需要可忽略此句)
mExcelFile.ActiveSheet.Range(.ActiveSheet.Cells(1,
1),
mExcelFile.ActiveSheet.Cells(1,
mRst.Fields.Count)).Font.Bold
=
True
『拾』 用VB查詢excel表格數據
可以調用excel數據表的find方法,也可以自己編一段程序找到底盤號所在行。
然後,根據數據表結構,取同行的不同列的數據,顯示出來就行了。