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 模拟进度条方便好看点,可以设置一个漂亮的图片