版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> VB打開EXCEL的方法一樓的沒有指明Dim xlBook As Excel.WorkBookSet xlBook = App.Workbooks.Open("文件名") 這種語法同樣要求excel已經(jīng)存在才能操作。</p><p> Public xlApp As Excel.ApplicationPublic xlBook As Excel.Workboo
2、kPublic xlChar As New Excel.ChartPublic xlSheet As New Excel.Worksheet</p><p> Set xlApp = New Excel.ApplicationSet xlApp = CreateObject("Excel.Application")Set xlBook = xlApp.Workbooks.AddSe
3、t xlSheet = xlBook.Worksheets.AddxlSheet.Cells(1, 1) = "測試" '寫入內(nèi)容xlBook.SaveAs ("FILENAME") '保存文件xlApp.QuitSet xlApp = Nothing</p><p> 本方法采用add添加excel文件和datasheet,然后用save保存。如
4、果用xlApp.Visible=False,則自動生成文件。但是如果文件已經(jīng)存在,則會彈出是否覆蓋的提示。因此,最好先在程序中檢查文件是否已經(jīng)存在,如果存在,則用普通方法打開。如果不存在,則用add添加,并保存。 </p><p> ★打開相對路徑下的文件Private Sub Command1_Click()Shell App.Path & "\aaa.bat"End Sub
5、 </p><p> 還有更簡單的:Private Sub Command1_Click()Shell "aaa.bat"End Sub</p><p> aaa.bat就是那個BAT的名字. </p><p> 那就不一定......因為SHELL只對可執(zhí)行文件有效.你可用WINDOWS外殼程序explorer.exe打開任何文件
6、(包括文件夾)</p><p> 代碼:Private Sub Command1_Click()Shell "explore.exe aaa.jpg"End Sub </p><p> ★VB調(diào)用EXCEL自帶的查詢功能在表格中查找內(nèi)容Private Sub ComCx_Click()</p><p> On Error GoTo
7、50</p><p> i = xlBook.Worksheets("代碼").Range("A:A").Find(Trim(TexDm.Text)).Row</p><p> ★將程序中所有這一類的對象的某一屬性全部更改為需要的屬性Dim Item As Object '定義對象For Each Item In Me If Typ
8、eOf Item Is TextBox Then Item.Text = "" '將所有TextBox的Text屬性值變?yōu)榭誌f TypeOf Item Is ComboBox Then Item.ListIndex = -1 '將所有的ComboBox的ListIndex屬性值變?yōu)椤?1”Next</p><p> If
9、Not i = 0 ThenDm = Trim(TexDm.Text)Sm = Trim(xlBook.Worksheets("代碼").Cells(i, "B").Value)Dw = Trim(xlBook.Worksheets("代碼").Cells(i, "D").Value)TexSm.Text = Sm & "
10、; " & "(" & Dw & ")"ComQd.Visible = TrueGoTo 100End If</p><p> 50TexSm.Text = "沒有找到相匹配的信息!"100End Sub</p><p> ★如何使編的程序可以調(diào)用excel首先要引用</p
11、><p> 再定義對象及其類型Dim xlApp As Excel.ApplicationDim xlBook As Excel.WorkbookDim xlSheet As Excel.WorksheetSet xlApp = CreateObject("Excel.Application")
12、; '創(chuàng)建EXCEL對象Set xlBook = xlApp.Workbooks.Open("D:\檢包組\合金廠代碼查詢\xls\合金JDE代碼.xls")xlApp.Visible = FalseSet xlSheet = xlBook.Worksheets("確認(rèn)信息")</p><p> ★另存為ChDir "D:\"
13、0; ActiveWorkbook.SaveAs Filename:="D:\合金廠產(chǎn)品質(zhì)檢明細(xì)表.xls", FileFormat:=xlExcel8, _ Password:="", WriteResPassword:="", ReadOnlyRecommended
14、:=False, _ CreateBackup:=False</p><p> VB是常用的應(yīng)用軟件開發(fā)工具之一,由于VB的報表功能有限,而且一但報表格式發(fā)生變化,就得相應(yīng)修改程序,給應(yīng)用軟件的維護(hù)工作帶來極大的不便。因此有很多程序員現(xiàn)在已經(jīng)充分利用EXECL的強(qiáng)大報表功來實現(xiàn)報表功能。但由于VB與EXCEL由于分別屬于不同
15、的應(yīng)用系統(tǒng),如何把它們有機(jī)地結(jié)合在一起,是一個值得我們研究的課題。</p><p> 一、 VB讀寫EXCEL表:</p><p> VB本身提自動化功能可以讀寫EXCEL表,其方法如下:</p><p> 1、在工程中引用Microsoft Excel類型庫:</p><p> 從"工程"菜單中選擇"
16、引用"欄;選擇Microsoft Excel 9.0 Object Library(EXCEL2000),然后選擇"確定"。表示在工程中要引用EXCEL類型庫。</p><p> 2、在通用對象的聲明過程中定義EXCEL對象:</p><p> Dim xlApp As Excel.ApplicationDim xlBook As Excel.Work
17、BookDim xlSheet As Excel.Worksheet </p><p> 3、在程序中操作EXCEL表常用命令:</p><p> Set xlApp = CreateObject("Excel.Application") '創(chuàng)建EXCEL對象Set xlBook = xlApp.Workbooks.Open("文件名"
18、;) '打開已經(jīng)存在的EXCEL工件簿文件xlApp.Visible = True '設(shè)置EXCEL對象可見(或不可見)Set xlSheet = xlBook.Worksheets("表名") '設(shè)置活動工作表xlSheet.Cells(row, col) =值 '給單元格(row,col)賦值xlSheet.PrintOut '打印工作表xlBook.Close
19、(True) '關(guān)閉工作簿xlApp.Quit '結(jié)束EXCEL對象Set xlApp = Nothing '釋放xlApp對象xlBook.RunAutoMacros (xlAutoOpen) '運行EXCEL啟動宏xlBook.RunAutoMacros (xlAutoClose) '運行EXCEL關(guān)閉宏 </p><p> 4、在運用以上VB命令操作EXCE
20、L表時,除非設(shè)置EXCEL對象不可見,否則VB程序可繼續(xù)執(zhí)行其它操作,也能夠關(guān)閉EXCEL,同時也可對EXCEL進(jìn)行操作。但在EXCEL操作過程中關(guān)閉EXCEL對象時,VB程序無法知道,如果此時使用EXCEL對象,則VB程序會產(chǎn)生自動化錯誤。形成VB程序無法完全控制EXCEL的狀況,使得VB與EXCEL脫節(jié)。</p><p> 二、 EXCEL的宏功能:</p><p> EXCE
21、L提供一個Visual Basic編輯器,打開Visual Basic編輯器,其中有一工程屬性窗口,點擊右鍵菜單的"插入模塊",則增加一個"模塊1",在此模塊中可以運用Visual Basic語言編寫函數(shù)和過程并稱之為宏。其中,EXCEL有兩個自動宏:一個是啟動宏(Sub Auto_Open()),另一個是關(guān)閉宏(Sub Auto_Close())。它們的特性是:當(dāng)用EXCEL打含有啟動宏的工
22、簿時,就會自動運行啟動宏,同理,當(dāng)關(guān)閉含有關(guān)閉宏的工作簿時就會自動運行關(guān)閉宏。但是通過VB的自動化功能來調(diào)用EXCEL工作表時,啟動宏和關(guān)閉宏不會自動運行,而需要在VB中通過命令xlBook.RunAutoMacros (xlAutoOpen)和xlBook.RunAutoMacros (xlAutoClose) 來運行啟動宏和關(guān)閉宏。</p><p> 三、 VB與EXCEL的相互勾通:</p>
23、;<p> 充分利用EXCEL的啟動宏和關(guān)閉宏,可以實現(xiàn)VB與EXCEL的相互勾通,其方法如下:</p><p> 在EXCEL的啟動宏中加入一段程序,其功能是在磁盤中寫入一個標(biāo)志文件,同時在關(guān)閉宏中加入一段刪除此標(biāo)志文件的程序。VB程序在執(zhí)行時通過判斷此標(biāo)志文件存在與否來判斷EXCEL是否打開,如果此標(biāo)志文件存在,表明EXCEL對象正在運行,應(yīng)該禁止其它程序的運行。如果此標(biāo)志文件不存在,表
24、明EXCEL對象已被用戶關(guān)閉,此時如果要使用EXCEL對象運行,必須重新創(chuàng)建EXCEL對象。</p><p><b> 四、舉例:</b></p><p> 1、在VB中,建立一個FORM,在其上放置兩個命令按鈕,將Command1的Caption屬性改為EXCEL,Command2的Caption屬性改為End。然后在其中輸入如下程序:</p>
25、<p> Dim xlApp As Excel.Application '定義EXCEL類 Dim xlBook As Excel.Workbook '定義工件簿類Dim xlsheet As Excel.Worksheet '定義工作表類 Private Sub Command1_Click() '打開EXCEL過程 If Dir("D:\temp\excel.bz&quo
26、t;) = "" Then '判斷EXCEL是否打開 Set xlApp = CreateObject("Excel.Application") '創(chuàng)建EXCEL應(yīng)用類 xlApp.Visible = True '設(shè)置EXCEL可見 Set xlBook = xlApp.Workbooks.Open("D:\temp\bb.xls")
27、9;打開EXCEL工作簿 Set xlsheet = xlBook.Worksheets(1) '打開EXCEL工作表 xlsheet.Activate '激活工作表 xlsheet.Cells(1, 1) = "abc" '給單元格1行駛列賦值 xlBook.RunA</p><p> Private Sub Command2_Click() If
28、 Dir("D:\temp\excel.bz") <> "" Then '由VB關(guān)閉EXCEL xlBook.RunAutoMacros (xlAutoClose) '執(zhí)行EXCEL關(guān)閉宏 xlBook.Close (True) '關(guān)閉EXCEL工作簿 xlApp.Quit '關(guān)閉EXCEL End If Set xlApp = No
29、thing '釋放EXCEL對象 EndEnd Sub</p><p> 2、在D盤根目錄上建立一個名為Temp的子目錄,在Temp目錄下建立一個名為"bb.xls"的EXCEL文件。</p><p> 3、在"bb.xls"中打開Visual Basic編輯器,在工程窗口中點鼠標(biāo)鍵選擇插入模塊,在模塊中輸入入下程序存盤:</p
30、><p> Sub auto_open() Open "d:\temp\excel.bz" For Output As #1 '寫標(biāo)志文件 Close #1End SubSub auto_close() Kill "d:\temp\excel.bz" '刪除標(biāo)志文件End Sub </p><p> 4、運行VB程序,點擊
31、EXCEL按鈕可以打開EXCEL系統(tǒng),打開EXCEL系統(tǒng)后,VB程序和EXCEL分別屬兩個不同的應(yīng)用系統(tǒng),均可同時進(jìn)行操作,由于系統(tǒng)加了判斷,因此在VB程序中重復(fù)點擊EXCEL按鈕時會提示EXCEL已打開。如果在EXCEL中關(guān)閉EXCEL后再點EXCEL按鈕,則會重新打開EXCEL。而無論EXCEL打開與否,通過VB程序均可關(guān)閉EXCEL。這樣就實現(xiàn)了VB與EXCEL的無縫連接。</p><p> ★JDE
32、代碼查詢程序源代碼</p><p> Dim xlApp As Excel.ApplicationDim xlBook As Excel.WorkbookDim xlSheet As Excel.WorksheetDim Dm As StringDim Sm As StringDim Dw As StringDim i As IntegerDim SouS As Object</p>
33、<p> Private Sub ComCx_Click()'i = 2'Do While i <= 10000'Dm = Trim(xlBook.Worksheets("代碼").Cells(i, "A").Value) 'If Dm = Trim(TexDm.Text) Then
34、60; 'Sm = Trim(xlBook.Worksheets("代碼").Cells(i, "B").Value) 'Dw = Trim(xlBook.Worksheets("代碼").Cells(i, "D").Value) 'TexSm.T
35、ext = Sm & " " & "(" & Dw & ")" 'GoTo 100 ' End If</p><p> 'i = i + 1'Loop'TexSm.Text = "沒有找到相匹
36、配的信息!"</p><p> On Error GoTo 50</p><p> i = xlBook.Worksheets("代碼").Range("A:A").Find(Trim(TexDm.Text)).Row</p><p> If Not i = 0 ThenDm = Trim(TexDm.Tex
37、t)Sm = Trim(xlBook.Worksheets("代碼").Cells(i, "B").Value)Dw = Trim(xlBook.Worksheets("代碼").Cells(i, "D").Value)TexSm.Text = Sm & " " & "(" &
38、 Dw & ")"ComQd.Visible = TrueGoTo 100End If</p><p> 50TexSm.Text = "沒有找到相匹配的信息!"</p><p> 100End Sub</p><p> Private Sub ComQc_Click()TexDm.Text = &q
39、uot;請在此輸入10位數(shù)的代碼"TexSm.Text = ""Dm = ""Sm = ""Dw = ""ComQd.Visible = False</p><p><b> End Sub</b></p><p> Private Sub ComQd_Click(
40、)xlSheet.Cells(2, "A").Value = DmxlSheet.Cells(2, "B").Value = SmxlSheet.Cells(2, "C").Value = DwxlBook.SaveEnd Sub</p><p> Private Sub ComTc_Click()xlBook.Close (False)
41、xlApp.QuitSet xlApp = NothingSet xlBook = NothingSet xlSheet = NothingEndEnd Sub</p><p> Private Sub Form_Load()Set xlApp = CreateObject("Excel.Application")
42、60; '創(chuàng)建EXCEL對象Set xlBook = xlApp.Workbooks.Open(App.Path & "\xls\合金JDE代碼.xls")xlApp.Visible = FalseSet xlSheet = xlBook.Worksheets("確認(rèn)信息")</p><p><b> End Sub
43、</b></p><p> Private Sub TexDm_DblClick()TexDm.Text = ""End Sub</p><p> ★ select case.... case ... end select 用法:</p><p> Select Case Co
44、mFgYy1.Text Case "缺邊掉角" xlsheet.Cells(i, "P").Value = Trim(TexFg1P.Text) xlsheet.Cells(i, "Q").Value = Trim(TexFg
45、1Kg.Text) xlsheet.Cells(i, "R").Value = Trim(TexFgQk1.Text) Case "變形" xlsheet.Cells(i, "S").Value = Trim(Te
46、xFg1P.Text) xlsheet.Cells(i, "T").Value = Trim(TexFg1Kg.Text) xlsheet.Cells(i, "U").Value = Trim(TexFgQk1.Text) Case
47、"表面鼓泡" xlsheet.Cells(i, "V").Value = Trim(TexFg1P.Text) xlsheet.Cells(i, "W").Value = Tr</p><p> ★ 添加子程序的時候,要在括號里面聲明要從主程序引用的變量和對象</p>
48、;<p> Public Sub FangGuo(ByVal i As Integer, ByVal xlapp As Excel.Application, ByVal xlbook As Excel.Workbook, ByVal xlsheet As Excel.Worksheet)</p><p> '——————————向下為放過區(qū)域——————————————————————&
49、lt;/p><p> Debug.Print i '即顯信息 '————放過1—————— Select Case ComFgYy1.Text Case "缺邊掉角"
50、0; xlsheet.Cells(i, "P").Value = Trim(TexFg1P.Text) xlsheet.Cells(i, "Q").Value = Trim(TexFg1Kg.Text) xlsheet.Cells(i, "R").Value = Trim(Tex
51、FgQk1.Text) Case "變形" xlsheet.Cells(i, "S").Value = Trim(TexFg1P.Text) xlsheet.Cells(i, "T").Value = Trim(T
52、exFg1Kg.Text) xlsheet.Cells(i, "U").Value = Trim(TexFgQk1.Text) end select</p><p><b> End Sub</b></p><p> ★點擊窗口右上角的關(guān)閉 是 “unload” 或 “
53、QueryUnload”事件</p><p> ★子程序改變來自主程序的變量的值:Private Sub Com1_Click() dim CfZ as integer QrCf CfZ If CfZ = 1 Then
54、60; MsgBox ("放過原因或報廢原因有重復(fù)!" & vbCrLf & "請查看紅色標(biāo)識......") End Ifend sub</p><p> Public Sub QrCf(Cf As Integer) Select Case ComFgYy1.Tex
55、t Case ComFgYy2.Text If ComFgYy1.Text <> "" Then ComFgYy1.BackColor = &HFF& ComFgYy2.BackColor = &HFF&
56、60; Cf = 1 End If end selectend sub</p><p> 運行效果:如果case中Cf=1執(zhí)行,則CfZ的值變?yōu)?,并彈出消息框</p><p> ★如何判斷字符串為是否為數(shù)字判斷表達(dá)式的運算結(jié)果是否為數(shù)字,返回 Boolean 值(True or False)。
57、</p><p> 描述返回 Boolean 值指明表達(dá)式的值是否為數(shù)字。語法IsNumeric(expression)expression 參數(shù)可以是任意表達(dá)式。</p><p> 說明如果整個 expression 被識別為數(shù)字,IsNumeric 函數(shù)返回 True;否則函數(shù)返回 False。 如果 expression 是日期表達(dá)式,IsNumeric 函數(shù)返回 F
58、alse。下面的示例利用 IsNumeric 函數(shù)決定變量是否可以作為數(shù)值: </p><p> Dim MyVar, MyCheckMyVar = 53 '賦值。MyChe
59、ck = IsNumeric(MyVar) ' 返回 True。</p><p> MyVar = "459.95" ' 賦值。MyCheck = IsNumeric(MyVar)
60、160; ' 返回True。</p><p> MyVar = "45 Help" ' 賦值。MyCheck = IsNumeric(MyVar) ' 返回 Fal
61、se。</p><p> ★在frmlogin中設(shè)置用戶及密碼檢查功能 Dim LogIn As Boolean Select Case ComUserName.Text Case "測試"
62、 If txtPassword.Text = "....." Then txtUserName.Text = "測試" LogIn = True
63、 Else LogIn = False End If
64、160; Case "魏敏" If txtPassword.Text = "wm" Then txtUserName.Text = "魏敏"
65、60; LogIn = True Else LogIn = False End If
66、 Case "黃選華" If txtPassword.Text = "hxh" Then txt<
67、/p><p> ★將一個文件復(fù)制到另外一個目錄,并改變名字</p><p> Dim xlFile, xlFileCopy As String xlFile = App.Path & "\xls\合金廠產(chǎn)品質(zhì)檢明細(xì)表.xls" xlFileCopy = "C:\xlTemp\&
68、quot; & "Copy" & Format(Now, "YYYY_MM_DD_HH_MM_SS") & ".xc" FileCopy xlFile, xlFileCopy</p><p> ★用format()函數(shù)自定義日期/時間格式 </p><p> ★VB
69、讀取一個文件的創(chuàng)建日期:我看網(wǎng)上找到一個,用fso的 Dim file As Variant
70、Dim fso As Variant Set fso = CreateObject("Scripting.FileSystemObject"
71、) Set file = fso.GetFile(.filename) MsgBox
72、 vbLf & "創(chuàng)建時間:" & file.DateCreated & _ vbLf
73、60; & "修改時間:" & file.DateLastModified & _ vbLf &
74、 "訪問時間:" & file.DateLastAccessed 另外還有一個問題,就是獲取文件版本,可以使用 Declare Function GetFileV</p>
75、<p> ★刪除指定位置的普通文件Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As LongPrivate Declare Function F
76、indNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As LongPrivate Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Lo
77、ng) As LongPrivate Declare Function FileTimeToSystemTime Lib "kernel32" (lpFileTime As FILETIME, lpSystemTime As SYSTEMTI</p><p> Private Const FILE_ATTRIBUTE_DIRECTORY = &H10Private Type SY
78、STEMTIME wYear As Integer wMonth As Integer wDayOfWeek As Integer &
79、#160; wDay As Integer wHour As Integer wMinute As Integer wSecond As Integer
80、160; wMilliseconds As IntegerEnd Type</p><p> Private Type FILETIME dwLowDateTime As Long
81、 dwHighDateTime As LongEnd TypePrivate Const MAX_PATH = 260</p><p> Private Type WIN32_FIND_DATA dwFileAttributes As Long
82、60; ftCreationTime As FILETIME ftLastAccessTime As FILETIME ftLastWriteTime As FILETIME
83、0; nFileSizeHigh As Long nFileSizeLow As Long dwReserved0 As Long dwReserved1 As Long
84、; cFileName As String * MAX_PATH cAlternate As String * 14End TypeDim Fdata As WIN32_FIND_DATA</p><p> Private Sub DelFiles(B
85、yVal sPath As String, ByVal xD As String)On Error Resume NextDim R1 As Long, R2 As Long, TmpTime As StringDim SYSTM As SYSTEMTIMER1 = FindFirstFile(sPath & "*", Fdata)If (Fdata.dwFileAttributes And FIL
86、E_ATTRIBUTE_DIRECTORY) = False ThenFileTimeToSystemTime Fdata.ftCreationTime, SYSTMTmpTime = CStr(SYSTM.wYear) & "-" & CStr(SYSTM.wMonth) & "-" & CStr(SYSTM.wDay) & " "
87、 & CStr(SYSTM.wHour) & ":" & CStr(SYSTM.wMinute) & ":" & CStr(SYSTM.wSecond)If CDate(TmpTime) < CDate</p><p> End IfDoEventsLoopEnd Sub</p><p> P
88、rivate Function StrF(ByVal S As String) As StringStrF = Left(S, InStr(S, Chr(0)) - 1)End Function</p><p> 用法:(刪除“c:\xltemp\”這里所有的10天前的文件)Private Sub Command1_Click()Dim NowDate As StringNowDate = Str(D
89、ate - 10)DelFiles "c:\xltemp\", NowDateEnd Sub</p><p> ?。ㄈ粜枰獎h除指定擴(kuò)展名的文件,將 R1 = FindFirstFile(sPath & "*", Fdata)這一行里面的 “*” 改成 “*.擴(kuò)展名”)(另外有一點,在這個程序里面,文件的創(chuàng)建時間是精確到秒的,你的時間只用了date-10,只有
90、日期沒時間,比如2010-3-10號,只能刪除10號之前的。10號當(dāng)天的刪除不了。)</p><p> ★VB日期選擇邊框網(wǎng)上有不少做日期選擇框的方法或控件,搞得非常復(fù)雜。</p><p> 其實VB6自帶有日期選擇框的:菜單:工具,部件 把mcrosoft windows com
91、mon controls-2 6.0(sp6)</p><p> 得到的DTPicker就是DateTimePicker一般就用 DTPicker控件這就是你想要的東西了</p><p> ★VB自帶的刪除文件功能</p><p> Kill filename</p><p> ★建
92、立連接用ADO對象很方便首先添加“工程-引用”:Microsoft ActiveX Objects 6.0 Librarydim cn as new connectiondim rs as new recordsetcn.open "數(shù)據(jù)庫連接串"set rs=cn.execute("select * from tab1")debug.print rs.fields("字段名
93、")</p><p> ("數(shù)據(jù)庫連接串"這段內(nèi)容,可以用一個udl文件生成,用記事本創(chuàng)建一個沒有內(nèi)容的擴(kuò)展名為udl文件,雙擊打開,按上邊的提示配置好,再用記事本打開,就可以找到需要的那段字符串了。)</p><p> Dim cn As New ADODB.ConnectionDim rs As New ADODB.Recordset</p&g
94、t;<p> Private Sub Command1_Click()cn.ConnectionString = "Provider=MSDASQL.1;Password=.....;Persist Security Info=True;User ID=kio;Data Source=SQLDb;Initial Catalog=DataTest"cn.Openrs.Open "[dbo
95、].[ZJMX]", cn, 1, 3rs.AddNewrs("登陸時間") = Text1.Textrs("用戶名") = Text2.Textrs.Update</p><p> rs.Clonecn.CloseEnd Sub</p><p> ★將用戶名和密碼存于數(shù)據(jù)庫中的數(shù)據(jù)表“用戶設(shè)置”中,下面是密碼驗證過程:&
96、#160;Cn.ConnectionString = "Provider=SQLOLEDB.1;Password=.....;Persist Security Info=True;User ID=carbide;Initial Catalog=Carbide;Data Source=172.16.13.16\SQLEXPRESS" Cn.Open
97、0; Dim SqlStr As String SqlStr = "select * from [dbo].[用戶設(shè)置] where [UN]='" & txtUserName.Text & "' And [PW]='" & txtPassword.Text & "'"
98、60; Set Rs = Cn.Execute(SqlStr) If Not Rs.EOF Then Rs.Close Cn.Close
99、160; OK = True Me.Hide Else Ms</p><p> ★SQL 查詢并取值的問題</p><p> Cn
100、.ConnectionString = "Provider=SQLOLEDB.1;Password=.....;Persist Security Info=True;User ID=carbide;Initial Catalog=Carbide;Data Source=172.16.13.16\SQLEXPRESS" Cn.Open Dim
101、SqlStr As String SqlStr = "select * from [dbo].[用戶設(shè)置] where [UN]='" & txtUserName.Text & "' And [PW]='" & txtPassword.Text & "'"
102、0; Set Rs = Cn.Execute(SqlStr) If Not Rs.EOF Then Dlr = Rs("姓名").Value DlID = t
103、xtUserName.Text Rs.Close Cn.Close end if</p><p> ★如何判斷字段值為空 If IsNull(Rs(FgP)) = True An
104、d IsNull(Rs(FgKg)) = True Then y = y + 1 GoTo 11 Else ComFgYy(x).Text = Yy(y) TexFgP(x).Text = Rs(FgP).Value
105、0; TexFgKg(x).Text = Rs(FgKg).Value TexFgQk(x).Text = Rs(FgQk).Value y = y + 1 End If</p><p> ★更改已有記錄Cn.OpenDim SqlStr As StringSqlStr = "sel
106、ect * from [dbo].[產(chǎn)品質(zhì)檢明細(xì)] where [記錄號]=" & LshCxRs.Open SqlStr, Cn, 1, 3</p><p> Rs("記錄號") = LshCxRs("錄入時間") = NowRs("檢驗時間") = DTPJyrq.Value</p><p><
107、b> Rs.update</b></p><p> ★刪除已有記錄Cn.OpenDim SqlStr As StringSqlStr = "delete from [dbo].[產(chǎn)品質(zhì)檢明細(xì)] where [記錄號]=" & LshCxRs.Open SqlStr, Cn, 1, 3Cn.Close</p><p> ★SQL復(fù)
108、制記錄INSERT INTO `table` SELECT * FROM `table` WHERE id=1;沒有主鍵時候才可以。。有主鍵時候就要寫上列:INSERT INTO `table`(`a`,`b`,`c`) SELECT `a`,`b`,`c` FROM `table` WHERE id=1;補(bǔ)充:如果要插入數(shù)據(jù)的表比前表字段但是也要插入數(shù)據(jù),可以用mysql函數(shù)產(chǎn)生欄目填充,例如:ABS(1),TRIM('
109、;abc')</p><p> UPDATE `table` SET a = !a WHERE id = 1;//布爾值取反UPDATE `table1`,`table2` SET `table1`.id = `table2`.id WHERE `table1`.id = `table2`.id;//更新 </p><p> ★SQL語句查找空值</p><
110、;p> select * from 表格 where 字段名 is null</p><p> ★將SQL查找結(jié)果導(dǎo)出到EXCELDim xlApp As New Excel.ApplicationDim xlBook As New Excel.WorkbookDim xlSheet As New Excel.WorksheetDim m As Integer, n As IntegerDim
111、 Ran As String</p><p> Set xlApp = CreateObject("Excel.Application") '創(chuàng)建EXCEL應(yīng)用類 Set xlBook = xlApp.Workbooks.Open("f:\softjesen\data\質(zhì)檢明細(xì)100520.xls") '打開EXCEL
112、工作簿 xlApp.Visible = True '設(shè)置EXCEL不可見 Set xlSheet = xlBook.Worksheets.Add ActiveSheet.Name = "產(chǎn)品質(zhì)日報表" & Format(Now, "YYYY_MM_DD_HH_MM_SS"
113、;) '打開EXCEL工作表 m = 2 Do While Not Rs.EOF For n = 0 To Rs.Fields.Count - 1 Ran = x & ":" & x xlShe
114、et.Cells(1, n + 1) = Rs.Fields(n).Name xlSheet.Cells(m, n + 1) = Rs(n).Value Next R</p><p> ★VB 中 DataGrid 的使用方法SqlStr = "select * from dbo.代碼
115、where [JDE代碼]='" & Trim(Text1(0).Text) & "'" Cn.CursorLocation = adUseClient '關(guān)鍵語句,有了這句控件才能顯示數(shù)據(jù)集的內(nèi)容 Cn.Open 'Rs.
116、Open SqlStr, Cn Set Rs = Cn.Execute(SqlStr) If Not Rs.EOF Then Text1(1).Text = Rs("牌號") Text1(2).Text = Rs("型號")
117、; Text1(3).Text = Rs("單位") Set DataGrid1.DataSource = Rs '關(guān)鍵語句,將控件和數(shù)據(jù)集連接起來 'DataGrid1.ClearFields 'DataGrid1.ReBind &
118、#160; Else MsgBox ("沒有找到對應(yīng) JDE代碼 的信息!") End If</p><p> ★ 單擊就全選文本框中內(nèi)容,文本框用到了控件數(shù)組(index= 0 to 8)Private Sub Text1_Click(Index As Integer)Text1(Index).Se
119、lStart = 0Text1(Index).SelLength = Len(Text1(Index).Text)End Sub</p><p> ★在textbox中顯示 datagrid 表格中選中單元格所在列的記錄Dim DataBj As Integer '標(biāo)記表中是否有數(shù)據(jù)顯示, 有為 1 沒有 為 0</p><p> Private Sub Da
120、taGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)If DataBj = 1 Then Text1(0).Text = DataGrid1.Columns("JDE代碼").Text ' DataGrid1 Text1(1).Text = DataGr
121、id1.Columns("牌號").Text 'rs1("牌號") Text1(2).Text = DataGrid1.Columns("型號").Text 'rs1("型號") Text1(3).Text = DataGrid1.Columns("說明&q
122、uot;).Text 'rs1("說明").Value Text1(4).Text = DataGrid1.Columns("備注").Text 'rs1("備注").Value Combo1.Text = DataGrid1.Columns("單位").Text &
123、#39;rs1("單位") ID = DataGrid1.Columns</p><p> 注意:DataGrid1_RowColChange 事件在datagrid控件中的內(nèi)容有改變的時候都會被激活,所以在查詢結(jié)果顯示出來之前該事件就被激活了,會出現(xiàn)好不到記錄的提示,為了解決這個問題,需要引入一個變量DataBj 來標(biāo)記是否已經(jīng)有查詢結(jié)果顯示在表格中,
124、使當(dāng)表格中有內(nèi)容的時候才執(zhí)行DataGrid1_RowColChange事件中的代碼。</p><p> ★通過SQL語句刪除表中重復(fù)記錄的方法原理:曬出無重復(fù)的記錄 將數(shù)據(jù)導(dǎo)入到另外一個相同的表中(名字不同),再將無重復(fù)記錄的表的名字改為源表的名字。INSERT INTO DBO.代碼2 ([ID],[JDE代碼],[牌號],[型號],[單位],[說明]) SELECT DISTINCT [I
125、D],[JDE代碼],[牌號],[型號],[單位],[說明] FROM dbo.代碼</p><p> ★定時任務(wù),使用 Timer控件,在Timer控件的interval屬性中設(shè)置時間間隔,單位是 毫秒 (1秒=1000毫秒)</p><p> 例:Private Sub Timer1_Timer()rs.RequeryDataGrid1.refreshEnd Sub<
126、/p><p> ★如何獲得查詢結(jié)果的 記錄條數(shù)X = Rs.RecordCount 'X就是記錄的條數(shù)</p><p> vb中recordcount返回值總是為-1:</p><p> 這樣就沒問題rs.open sqlstr,conn,3,2 這樣就有問題rs.open sqlstr,conn,1,2 因為conn后第一個數(shù)字是1表示
127、指針只能往前,3表示自由指針 使用RecordCount屬性可確定Recordset對象中記錄的數(shù)目。ADO無法確定記錄數(shù)時,或者如果提供者或游標(biāo)類型不支持RecordCount,則該屬性返回–1。讀已關(guān)閉的Recordset上的RecordCount屬性將產(chǎn)生錯誤。 如果Recordset對象支持近似定位或書簽(即Supports(adApproxPosition)或Supports(adBookmark)各自返回True),不管
128、是否完全填充該值,該值將為Recordset中記錄的精確數(shù)目。如果Recordset對象不支持近似定位,該屬性可能由于必須對所有記錄進(jìn)行檢索和計數(shù)以返回精確RecordCount值而嚴(yán)重消耗資源。 Recordset對象的游標(biāo)類型會影響是否能夠確定記錄的數(shù)目。對僅向前游標(biāo),RecordCount屬性將返回-1,對靜態(tài)或鍵集游標(biāo)返回實際計數(shù),對動態(tài)游標(biāo)取決于數(shù)據(jù)源返回-1或?qū)嶋H計數(shù)。</p><p> ★關(guān)閉當(dāng)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 用vb操作excel方法匯總
- excel同時打開兩個窗口的方法
- vb操作excel
- 用DAO打開Excel文件.txt
- 用DAO打開Excel文件.txt
- 用DAO打開Excel文件.txt
- 用DAO打開Excel文件.txt
- 用DAO打開Excel文件.txt
- excel文檔不能直接打開雙擊呈灰色
- excel文檔不能直接打開雙擊呈灰色
- 用VB創(chuàng)建Excel報表.txt
- 淺談Excel 的VB編程.txt
- 淺談Excel 的VB編程.txt
- 用VB創(chuàng)建Excel報表.txt
- 淺談Excel 的VB編程.txt
- 用VB創(chuàng)建Excel報表.txt
- 淺談Excel 的VB編程.txt
- 用VB創(chuàng)建Excel報表.txt
- 淺談Excel 的VB編程.txt
- 用VB創(chuàng)建Excel報表.txt
評論
0/150
提交評論