VB程序员博客

VB程序开发

怎么用VB6控制电脑整体的下载上传速度……..
给个思路.个人所知的
关于下载速度的限制,也就是只有当前下载线程Sleep关注~~~~~~~~~~~~~试试wincap,没做过没做过,帮顶~~up………………没做过,帮顶~~
没做过是不是要用到网络驱动什么的东西,难道没有人知道吗/?


怎么用VB6控制电脑整体的下载上传速度……..
给个思路.个人所知的
关于下载速度的限制,也就是只有当前下载线程Sleep关注~~~~~~~~~~~~~试试wincap,没做过没做过,帮顶~~up………………没做过,帮顶~~
没做过是不是要用到网络驱动什么的东西,难道没有人知道吗/?


怎么用VB6控制电脑整体的下载上传速度……..
给个思路.个人所知的
关于下载速度的限制,也就是只有当前下载线程Sleep关注~~~~~~~~~~~~~试试wincap,没做过没做过,帮顶~~up………………没做过,帮顶~~
没做过是不是要用到网络驱动什么的东西,难道没有人知道吗/?


怎么用VB6控制电脑整体的下载上传速度……..
给个思路.个人所知的
关于下载速度的限制,也就是只有当前下载线程Sleep关注~~~~~~~~~~~~~试试wincap,没做过没做过,帮顶~~up………………没做过,帮顶~~
没做过是不是要用到网络驱动什么的东西,难道没有人知道吗/?


怎么用VB6控制电脑整体的下载上传速度……..
给个思路.个人所知的
关于下载速度的限制,也就是只有当前下载线程Sleep关注~~~~~~~~~~~~~试试wincap,没做过没做过,帮顶~~up………………没做过,帮顶~~
没做过是不是要用到网络驱动什么的东西,难道没有人知道吗/?


例如我的vb代码:
set rs=cn.execute(Str1)
然后过了几行又用了一次
set rs=cn.execute(Str2)
感觉速度好像不大稳定,是不是因为多次对一个对象rs读取的原因?
应该如何处理能够快一些?如果是同一个结果集,为什么要多次读取?
如果不是同一个结果集,速度比较又会失去意义。
别在这儿下功夫,良好的SQL语句会提高一些速度。

是的,我的代码中需要多次set rs,因为是不同的结果集.查询起来确实有偏差.
先谢谢二位~还有人关注么?


要处理的数据为1000-3000条(非数据库数据),表格上部要进行数据的计算,下部要统计指标,并且要对数据进行不同颜色的标注,如何处理速度会快些?

目前我用的是 VSFlexgrid控件显示数据,是最佳选择吗?

分析数据时先计算、统计,然后显示到表格中速度快?还是边分析边显示好?是不是后者更占内存?

不同颜色的背景标示有更快处理的技巧吗?

谢谢!

这种方法我知道,谢谢

有没有代码处理上的措施?其它控件?用数据库?

分页是王道

不知道楼主现在是怎么个速度,一般来讲,3000条数据还是非常快可以搞定的
可能楼主的
“表格上部要进行数据的计算,下部要统计指标”
这部分代码需要优化
另外,对表格进行颜色标注的时候应该尽量使用VsFlex.Cell方法

建议楼主贴出代码

数据存入数组. 根据滚动条位置只是窗口能看见到的数据.,我不会这个.不过有人会…这个应该是比较快的.

我也是 用  VSFLEXGRID 的,楼上的 兄弟门加我QQ
  大家一起研究研究
QQ:185847507

fpspread不错,可以试看看

使用数组。。。。。。。。。。。。。。来显示快些

3000行有2-3秒不显示flexgrid应该没问题的,再不然你可以禁止刷新,完成后恢复(效果还不如不显示,哈哈哈)

表格上部要进行数据的计算 这是指什么?

下部统计可以用合计完成?

前3000行是显示数据,其中前N列是简单计算,后M列是对前N列的同一行数据分析
后面几行是对每列数据的统计分析,不是简单合计计算。

引用 3 楼 bloom8848 的回复:
分页是王道

怎么解决呢?

我现在是边计算边显示,分析是用的数组,显示后不用就卸掉了。


我先在需要调用另一个程序.
但用这个程序的话有个前提,D盘里不许有任何程序运行.否则运行的程序会直接DOWN掉.
我现在就想写个程序判断下D盘是否有程序运行,什么程序运行了,路径是什么….

想起以前收藏的一个代码,送给你:

http://www.m5home.com/blog2/blogview.asp?logID=458&cateID=2

得到路径了,判断一下是不是D盘就行了

呵呵,谢谢拉。
我来CSDN的时候第一个记住的就是你.
呵呵确切的说是你的头像……哈哈.


当窗体滚动条设置好后,还需要实现鼠标滚动轮会让窗体页面上下移动,于是引用了下面模块代码;
若窗体数量少,用起来还可以,但窗体数量多(如30个以上),因每增加一个窗体,就要加一组代码,于是
软件启动速度就变得很慢,哪位能指点一下问题所在,有什么改进的方法?或有其它更好的办法?
在模块上的代码:
Option   Explicit
Public   Type   POINTL
        x   As   Long
        y   As   Long
End   Type
Declare   Function   CallWindowProc   _
        Lib   "USER32 "   Alias   "CallWindowProcA "   _
                (ByVal   lpPrevWndFunc   As   Long,   _
                ByVal   hWnd   As   Long,   _
                ByVal   Msg   As   Long,   _
                ByVal   wParam   As   Long,   _
                ByVal   lParam   As   Long)   As   Long

Declare   Function   SetWindowLong   _
        Lib   "USER32 "   Alias   "SetWindowLongA "   _
                (ByVal   hWnd   As   Long,   _
                ByVal   nIndex   As   Long,   _
                ByVal   dwNewLong   As   Long)   As   Long

Declare   Function   SystemParametersInfo   _
        Lib   "USER32 "   Alias   "SystemParametersInfoA "   _
                (ByVal   uAction   As   Long,   _
                ByVal   uParam   As   Long,   _
                lpvParam   As   Any,   _
                ByVal   fuWinIni   As   Long)   As   Long
       
Declare   Function   ScreenToClient   Lib   "USER32 "   _
(ByVal   hWnd   As   Long,   xyPoint   As   POINTL)   As   Long

Public   Const   GWL_WNDPROC   =   -4
Public   Const   SPI_GETWHEELSCROLLLINES   =   104
Public   Const   WM_MOUSEWHEEL   =   &H20A
Public   WHEEL_SCROLL_LINES   As   Long
           
Global   lpPrevWndProc   As   Long

Public   Sub   Hook(ByVal   hWnd   As   Long)
        lpPrevWndProc   =   SetWindowLong(hWnd,   GWL_WNDPROC,   AddressOf   WindowProc)
        Call   SystemParametersInfo(SPI_GETWHEELSCROLLLINES,   0,   WHEEL_SCROLL_LINES,   0)
        If   WHEEL_SCROLL_LINES   >   xj1.VScroll1.Max   Then   '每增加一个窗体,就要加一组相应的代码
                WHEEL_SCROLL_LINES   =   xj1.VScroll1.Max
        End   If
End   Sub

Public   Sub   UnHook(ByVal   hWnd   As   Long)
        Dim   lngReturnValue   As   Long
        lngReturnValue   =   SetWindowLong(hWnd,   GWL_WNDPROC,   lpPrevWndProc)
End   Sub

Function   WindowProc(ByVal   hw   As   Long,   _
                ByVal   uMsg   As   Long,   _
                ByVal   wParam   As   Long,   _
                ByVal   lParam   As   Long)   As   Long
        Dim   pt   As   POINTL
        Select   Case   uMsg
                Case   WM_MOUSEWHEEL
                        If   wParam   =   -7864320   Then
                                If   xj1.VScroll1.Value   <=   xj1.VScroll1.Max   -   1000   Then     '每增加一个窗体,就要加一组相应的代码

                                        xj1.VScroll1.Value   =   xj1.VScroll1.Value   +   1000
                                Else
                                        xj1.VScroll1.Value   =   xj1.VScroll1.Max
                                End   If
                        ElseIf   wParam   =   7864320   Then
                                If   xj1.VScroll1.Value   > =   1000   Then     '每增加一个窗体,就要加一组相应的代码

                                        xj1.VScroll1.Value   =   xj1.VScroll1.Value   -   1000
                                Else
                                        xj1.VScroll1.Value   =   0
                                End   If
                        End   If
                Case   Else
                        WindowProc   =   CallWindowProc(lpPrevWndProc,   hw,   uMsg,   wParam,   lParam)
        End   Select
End   Function

Public   Function   HIWORD(LongIn   As   Long)   As   Integer
    HIWORD   =   (LongIn   And   &HFFFF0000)     &H10000
End   Function

Public   Function   LOWORD(LongIn   As   Long)   As   Integer
            LOWORD   =   LongIn   And   &HFFFF&
End   Function

在窗体上还要加上以下代码:
Private   Sub   Form_Load()
        Hook   Me.hWnd   '鼠标滚轮事件用
End   Sub
Private   Sub   Form_Resize()
        If   Frame1.Height   >   Me.Height   Then
                VScroll1.Visible   =   True
        Else
                VScroll1.Visible   =   False
        End   If
        If   Frame1.Width   >   Me.Width   Then
                HScroll1.Visible   =   True
        Else
                HScroll1.Visible   =   False
        End   If
        HScroll1.Left   =   0
        HScroll1.Top   =   Me.ScaleHeight   -   HScroll1.Height
        VScroll1.Left   =   Me.ScaleWidth   -   VScroll1.Width
        VScroll1.Top   =   0
        HScroll1.Width   =   Me.ScaleWidth
        VScroll1.Height   =   Me.ScaleHeight
        If   VScroll1.Visible   =   True   Then
                If   HScroll1.Visible   =   True   Then
                      HScroll1.Width   =   Abs(Me.ScaleWidth   -   VScroll1.Width)
                      VScroll1.Height   =   Abs(Me.ScaleHeight   -   HScroll1.Height)
                End   If
        End   If
        HScroll1.Max   =   (Frame1.Width   -   Me.Width)   +   3   *   VScroll1.Width
        VScroll1.Max   =   (Frame1.Height   -   Me.Height)   +   3   *   HScroll1.Height
        HScroll1.ZOrder
        VScroll1.ZOrder
End   Sub
Private   Sub   HScroll1_Change()   '滚动条用
    Frame1.Left   =   -HScroll1.Value
End   Sub
Private   Sub   VScroll1_Change()   '滚动条用
        Frame1.Top   =   -VScroll1.Value
End   Sub


1、通过网格读取数据生成excel报表,速度很慢怎么解决?有没有其他办法?
2、vb引用了excel 2003,因为要根据模板来生成,客户断excel不是2003就无法生成excel,怎么解决这个问题?
代码如下
Private Sub cmdExl_Click()
    Dim xlApp    As Excel.Application
    Dim ExcelPath As Long
   
    Dim i        As Integer
    Dim j        As Integer
    On Error GoTo ErrMsg
    ExcelPath = CopyFile(App.Path & "Excel模版.xls", App.Path & "Excel est.xls", True)
    If ExcelFileOpen(xlApp, App.Path & "Excel est.xls") = False Then Exit Sub
    xlApp.ActiveSheet.PageSetup.CenterHeader = P_PlantName & Me.Caption
    With xlApp.Workbooks(1).Sheets("sheet1")
        For i = 1 To MSHDN.Rows
            For j = 1 To MSHDN.Cols - 1
                MSHDN.Row = i - 1
                MSHDN.Col = j
                .Range(P_arrExl(j - 1) & i + 1) = MSHDN.Text
            Next j
        Next i     
     
    End With
   
    With xlApp
        .Visible = True
    End With
   
    Screen.MousePointer = vbDefault
    Exit Sub
ErrMsg:
    MsgBox Err.Description, vbInformation, "系统提示"
End Sub

谢谢Oasis0535,怎么看模板是不是2003格式的呢?
项目不是我做的,只是人家拿代码过来让我们分析
如果模板是2000的,就可以在只装excel 2000的电脑上生成excel?
另外,加pplication.Calculation = xlCalculationManual是作什么用呢?

Dim MyXlsApp As Object
Set MyXlsApp = CreateObject("Excel.Application")
我以前遇到过类似的,所以我修改了没有引用Excel,有些功能在不同版本的Office有点区别,在低版本不能设置某些样式而已,做好之后测试一下就行了。


专题:

栏目: