vb上傳進度
1. vb上傳文件的實現....
數據的上傳就是將檔案文件存儲到數據表中。在數據上傳時,因情況不同一般有兩種方式,即單一上傳和批量上傳,前者指一次上傳一個文件(在數據表中增加一條記錄),後者指一次將一個文件夾中的所有文件上傳到資料庫。兩者在實質上是統一的,批量上傳時,只需用一個循環語句就可。以下介紹單一上傳的過程。 1、打開數據表 通過以下語句打開數據表: dim office_rst As New ADODB.Recordset adocon.CursorLocation = adUseClient office_rst.Open "office", adocon, adOpenDynamic, adLockOptimistic, adCmdTable 2、添加新記錄並上傳文件 假定通過一些操作已經獲得了要上傳的文件路徑和名稱(例如,可利用CommomDialog控制項獲得),保存在string型變數filePath中。上傳的關鍵語句如下: dim adofld As ADODB.Field, DataArr() As Byte, filelen As Long, file_num As Long office_rst.AddNew Set adofld = office_rst("office") adorst("filename").Value = filePath file_num = FreeFile '返回一個 Integer,代表下一個可供Open語句使用的文件號 Open filePath For Binary Access Read As file_num '打開磁碟文件 filelen = LOF(file_num) '求文件長度 ReDim DataArr(filelen) '根據文件長度定義動態數組大小 Get sourcefile, , DataArr '將一個已打開的磁碟文件讀入數組變數之中 adofld.AppendChunk DataArr() '將數組內容存入image型欄位中 Close file_num '關閉磁碟文件 adorst.update 其中的filename為表office中的一個string型欄位,用於存儲檔案文件的名稱。
2. VB中的進度條怎麼用
option explicit
dim pw as long
private sub command click()
dim i as long , k as long
pw = picture1.width
for i = 0 to 2006
picture1.width = (i / 2006) * pw
doevents
next i
end sub
試試吧..臨時寫的.沒有調試有問題QQ:86711527註明
如果你要用進度條的話也很簡單.
bar1為你添加的MS組件中的procressbar控制項
dim i as long
bar1.min = 0
bar1.max = 2005
for i = 0 to 2005
bar1.value = i
doevents
next i
前面寫的是用圖片控制項做進度條.
方法 2 這個是COPY 別人的
採用一個完整的圖片來作為進度條,每次當進度條改變時,採用先貼圖再用背景色擦去不需顯示的一段進度的方法來實現進度條的變化,可實現製作任何復雜美觀的進度條。
二、准備工作
首先需准備一個如下圖樣式的進度條圖片(當然你可以做你自己喜歡的樣式)。然後在窗體中加入一PictureBox控制項,屬性設置如下:
AutoSize:True
Appearance:Falt
AutoRedraw:True
ScaleMode: Pixel
Picture:〃准備的圖片〃
再加一輔助控制項(只用於保存圖片,方便快捷地使用進度條)Image,屬性設置如下:
Picture:〃准備的圖片〃
Visible:FALSE
說明:本文所講的進度條並不是狹義上那種安裝程序中常見的僅表示一個事件進程的進度條,而是把那些條形的,表示一個量的大小的圖示統稱為進度條。以此概念為基礎讓我們先來看看它的一些用途和類別,然後給出各類進度條的實現。
進度條的用途:
※在一般軟體中表示執行進度
※在多媒體播放器中表示音量大小、頻率節奏的變化…
※在游戲中表示角色的能量、生命值…
進度條的分類:
由以上用途可知,進度條大體可分為兩類
第一類:自動變化的進度條(如安裝程序中的進度條)
第二類:可由用戶操作的進度條(如音量調節)
以下是兩類進度條的代碼。
實現第一類的方法:
Const MaxValue = 100
Const MinValue = 0
Dim Gene As Single
Dim ProValue As Single
Sub InitData()
Gene = Picture1.ScaleWidth / (MaxValue - MinValue)
End Sub
Sub SetProBar(value As Single)
Dim X As Single
ProValue = value
If ProValue > MaxValue Then
ProValue = MaxValue
Else
If ProValue < MinValue Then
ProValue = MinValue
End If
End If
Text1.Text = ProValue
X = (ProValue - MinValue) * Gene
With Picture1
Picture1.Picture = Image1.Picture
Picture1.Line (X, 0)-(.ScaleWidth, .ScaleHeight), vbWhite, BF
End With
End Sub
以上是實現第一類進度條的全部代碼,它有相當的獨立性,不管你准備的進度條有多長,此代碼都可無須改變而應用於你的系統中。其中,MAXVALUE、MINVALUE為此進度條所表示的最大最小值,可由實際應用而定。
PROVALUE 為當前的進度值,可由它得到當前值,以便處理。
SETPROBAR 為實際使用的過程,在軟體中通過調用此過程來改變進度條的長度。VALUE 的取值為 MINVALUE~MAXVALUEINITDATA 是初始化進度條長度和實際要表示的范圍的比例因子,在軟體中首先要調用此過程完成初始化工作。
第二類實現方法:
要實現此類進度條,只需在第一類的基礎上再加上響應用戶操作的部分即可
具體所加代碼如下:
Private Sub picture1_MouseMove(Button As Integer, Shift As Integer, X As Single,Y As Single)
If Button = 1 Then
Picture1_MouseDown Button, Shift, X, Y
End If
End Sub
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single,Y As Single)
If Button = 1 Then
ProValue = Int(X / Gene + MinValue + 1)
SetProBar ProValue
End If
End Sub
應用示例:
建一工程,然後加入下列控制項,並寫入所示代碼即可。
控制項:兩個PictureBox,組成控制項數組(屬性設置如上)但:picture1(0)的BorderStyle:None
兩個Label,組成控制項數組並分別以與自已Index 值相同的PictureBox為父控制項(只需把Label繪在或粘貼在相應的PictureBox上即可)屬性:
AutoSize:True
Alignment:Center
BackStyle:Transparent
Label(1): Caption:〃當前音量0〃
Enabled:False
Label(0): Caption:〃0%〃
一個Timer:屬性:Interval:50
三、實例
一個自動的進度條和由用戶控制的進度條。
Option Explicit
′如果有多個進度條且表示值的范圍不同
′則可設立一組范圍值,最好能通過INDEX
′值同自已的進度條建立對應關系,以方便處理
Const MaxValue = 100
Const MinValue = 0
Dim Gene As Single
Dim ProValue(1) As Single
′生成比例因子,必須首先執行
Sub InitData()
Gene = Picture1(0).ScaleWidth /
(MaxValue - MinValue)
End Sub
′根據當前進度值設置進度條,INDEX指出是哪個進度條的值
Sub SetProBar(value As Single, Index As Integer)
Dim X As Single
Dim BkColor As Long
ProValue(Index) = value
′對當前進度值超出范圍的處理
If ProValue(Index) > MaxValue Then
ProValue(Index) = MaxValue
Else
If ProValue(Index) < MinValue Then
ProValue(Index) = MinValue
End If
End If
′在存在多個進度條時分別設置各進度條的不同文本
Select Case Index
Case 1
Label1(Index).Caption = ProValue(Index) & 〃%〃
Case 0
Label1(Index).Caption = 〃當前音量〃 & ProValue(Index)
End Select
′計算出當前進度值所對應的進度條位置
X = (ProValue(Index) - MinValue) * Gene
With Picture1(Index).Picture = Image1.Picture
′把當前進度值所對應的進度條位置之後的圖片用白色蓋住
′它是此法實現思路的核心
Select Case Index
Case 1
bkcolor = vbWhite
Case 0
bkcolor = vbMenuBar
End Select
Picture1(Index).Line (X, 0)-(.ScaleWidth, _ .ScaleHeight), bkcolor, BF
End With
End Sub
′首先初始化比例因子
Private Sub Form_Load()
InitData
End Sub
′在用戶操作INDEX為0的進度條時的響應
Private Sub picture1_MouseMove(Index As Integer, _
Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 And Index = 0 Then
Picture1_MouseDown Index, Button, Shift, X, Y
End If
End Sub
′根據當前滑鼠坐標的X值(進度條若為縱向則使用Y值)
′計算出所對應的當前進度值,然後設置進度條
Private Sub Picture1_MouseDown(Index As Integer, _
Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 And Index = 0 Then
ProValue(Index) = Int(X / Gene + MinValue + 1)
SetProBar ProValue(Index), Index
End If
End Sub
′在演示中以定時器定時設置進度
′實際使用時當然是按事件完成的
′百分比來設置進度
Private Sub Timer1_Timer()
Static curval As Single
SetProBar curval, 1
curval = (curval + 1) Mod MaxValue
If curval = 0 Then
curval = MinValue
End If
End Sub
3. 求VB進度條的詳細使用方法
ProgressBar
控制項可用圖形顯示事務的進程。該控制項的邊框在事務進行過程中逐漸被充滿。其
Value
屬性決定該控制項被填充多少。其
Min
和
Max
屬性設置該控制項的界限.要進行需要幾秒鍾才能完成的操作時,就要使用
ProgressBar。同時還必須知道該過程到達已知端點需要持續多長時間,並將其作為該控制項的
Max
屬性來設置。提示
為用戶提供可視的反饋信息,表明這個耗時的操作還要進行多長時間才能完成,這可以給人以改進了性能的感覺。
用途
通告用戶通過網路進行文件傳輸的進展情況。反映要持續幾秒鍾以上的過程的進展情況。
通告用戶正在運行的復雜演算法的進展情況。
使用
Value、Min
和
Max
屬性顯示進展情況
要顯示某個操作的進展情況,Value
屬性將持續增長,直到達到了由
Max
屬性定義的最大值。這樣該控制項顯示的填充塊的數目總是
Value
屬性與
Min
和
Max
屬性之間的比值。例如,如果
Min
屬性被設置為
1,Max
屬性被設置為
100,Value
屬性為
50,那麼該控制項將顯示百分之五十的填充塊,如下所示:
將
Max
屬性設置為已知的界限
要對
ProgressBar
進行編程,則必須首先確定
Value
屬性攀升的界限。例如,如果正在下載文件,並且應用程序能夠確定該文件有多少千位元組,那麼可將
Max
屬性設置為這個數。在該文件下載過程中,應用程序還必須能夠確定該文件已經下載了多少千位元組,並將
Value
屬性設置為這個數。在不能確定
Max
屬性的情況下,則需要用
Animation
控制項不停地顯示動畫,直到在結束事件中調用
Stop
方法為止。
詳細信息
有關使用
Animation
控制項的更詳細內容,請參閱「使用
Animation
控制項」。
用
Visible
屬性隱藏
ProgressBar
在操作開始之前通常不顯示進度欄,並且在操作結束之後它應再次消失。在操作開始時,將
Visible
屬性設置為
True
以顯示該控制項;並在操作結束時,將該屬性重新設置為
False
以隱藏該控制項。
4. VB怎麼製作進度條
進度條控制項的位置:
1.在控制項工具箱中右鍵=>部件。
2.在「部件」窗口中勾選Microsoft windows common controls 5.0或6.0。單擊確定。
3.然後控制項工具箱中就有進度條了。
改變樣式方法:(我暫時只知道這種)
下載一個SkinH,下載的文件夾裡面有使用方法哦~(並且會優化所有控制項及窗體)
注意事項:
1.使用時避免使用End語句,會出錯。(雖說生成EXE文件不會出錯,但影響調試)
2.使用時若出現實時錯誤點擊工具欄的停止也會出錯……
3.所以最好程序完工後再加上換膚代碼= =
我可能不是你說的「把文件刪除了它的進度條又變成普通的那種了」,但是是最貼合的方法了!
5. vb.net ftp上傳文件
Dim OpenFileDialog As New OpenFileDialog
OpenFileDialog.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyDocuments
OpenFileDialog.Filter = "文本文件(*.jpg)|*.jpg|所有文件(*.*)|*.*"
If (OpenFileDialog.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK) Then
Dim FileName As String = OpenFileDialog.FileName
' TODO: 在此處添加打開文件的代碼。
textbox1.Text = FileName
End If
第一個按鈕 上傳
Dim filelast As String = fileaddbefore.Text.Substring(fileaddbefore.Text.LastIndexOf("."), fileaddbefore.Text.Length - fileaddbefore.Text.LastIndexOf("."))
MessageBox.Show(filelast)
My.Computer.Network.UploadFile(textbox1.Text, "ftp://XXX/" & 文件名.Text & filelast, "登錄名1", "登錄密碼", True, 100)
第二個按鈕
6. VB中FTP上傳如何顯示進度條
用Wininet API應該可以(FtpOpenFile,InternetReadFile,InternetWriteFile)
你可以循環調用(Internet)ReadFile和(Internet)WriteFile,而每一次調用過程比如只讀寫1%的數據,然後更新一次進度條就可以了。另外,如果是在Windows NT中,你可以在調用ReadFile和WriteFile時使用非同步文件讀取功能來實現
7. VB 使用file函數時 怎麼樣添加一個進度條
file的時候,程序會卡住,沒有機會顯示進度條。如果非要用file,需要創建新線程監視,這是高技術。實際可行的方法是自己編寫file,用基本文件操作來一塊塊復制,這樣才能顯示。
8. VB中如何添加進度條表示一事件
既然你都說程序已經完成了那麼只是加一個進度條吧其實也很簡單,首先添加了進度條的控制項加窗口的某一個位置然後在你的程序代碼當中加入進度條名稱.value=(1-100之間的數字)用一個最愚蠢的方法,因為你說你對進度條不熟悉所以用這個方法就是最好的了因為value的屬性就是當前值,也就是當前進度值那麼在你的程序代碼當中,隨機添加進度條名稱.value=(1-100之間的數字)那麼進度條就會在程序表示當前運行進度,當然,你的進度條要比較准確,例如,第一句代碼之前加了進度條名稱.value=1原程序代碼最後一句之後進度條名稱.value=100中間就隨你喜歡了如果還有什麼不明白的,也可以補充說明哦(*^__^*)...嘻嘻記住,這是最笨的方法,不過還是挺好用的
9. vb里的進度條怎麼做
系統自帶進度條控制項,在控制項欄右鍵→部件 然後選擇 microsoft windows common controls 6.0
有個自帶的進度條
你也可以用shape picture image等控制項模擬進度條
也可以自己手動寫一個進度條控制項
不過個人覺得用picturebox和image 模擬進度條方便好看點,可以設置一個漂亮的圖片