• 本人编写的两个Oracle的帮助小工具,DB_Table_Struct.XLS可以用于创建Oracle
    的表结构,在上一个版本的基础上增加了向用户提示的部分,修正了多表创建时多输
    出文件的BUG;
    CreateDatumXLS.xls是用来在Oracle创建数据的小工具.

    两个工具的用法都比较简单,填空再按快捷健输出就可以,大家可以先试试样例再正
    式使用,有问题请通知我.

    注:此两个工具都可以随意分发使用修改,但具体修改的地方必须声明并非本人书写,
    本人放弃除署名权外的任何权利.

    下载地址:http://www.helihuo.net/non-cgi/usr/35/35_2407.rar
  • ’******************************************************************************
    ’* クラス 名称 :clsAutoTabTxt
    ’*
    ’* クラス 概要 :Enterキーを押すとき、自動的にfocusを移す。
    ’******************************************************************************
    Option Explicit

    ’ クラスの属性をセットする。
    Private WithEvents mtxt As TextBox

    ’******************************************************************************
    ’ 関数名称 :Attach()

    ’ 目的説明 :このクラスを外部テキストボックスにセットする。
    ’ 入力引数 :
    ’ txtOut:外部テキストボックスのリファレンス。
    ’ 戻り値 :なし
    ’ 関数著者 :何楊 (hey@dhc.com.cn)
    ’******************************************************************************
    Public Sub Attach(txtOut As TextBox)
    Set mtxt = txtOut
    End Sub

    ’******************************************************************************
    ’ 関数名称 :mtxt_KeyPress()

    ’ 目的説明 :テキストボックスに英数字だけ書き込み。
    ’ Enterキーを押すとき、自動的にfocusを移す。
    ’ 入力引数 :
    ’ KeyAscii:入力するキャラクタのAsciiコード。
    ’ 戻り値 :なし
    ’ 関数著者 :何楊 (hey@dhc.com.cn)
    ’******************************************************************************
    Private Sub mtxt_KeyPress(KeyAscii As Integer)
    If (KeyAscii > 57 Or KeyAscii < 48) And KeyAscii <> 8 And KeyAscii <> 13 Then
    KeyAscii = 0
    MsgBox E009, vbCritical, gstrTitleNormal
    ElseIf KeyAscii = 13 Then
    SendKeys "{tab}"
    End If
    End Sub
  • ’******************************************************************************
    ’* クラス 名称 :clsAutoSelectTxt
    ’*
    ’* クラス 概要 :自動的にテキストボックスを選択する。
    ’******************************************************************************
    Option Explicit

    ’ クラスの属性をセットする。
    Private WithEvents mtxt As TextBox

    ’******************************************************************************
    ’ 関数名称 :Attach()

    ’ 目的説明 :このクラスを外部テキストボックスにセットする。
    ’ 入力引数 :
    ’ txtOut:外部テキストボックスのリファレンス。
    ’ 戻り値 :なし
    ’ 関数著者 :何楊 (hey@dhc.com.cn)
    ’******************************************************************************
    Public Sub Attach(txtOut As TextBox)
    Set mtxt = txtOut
    End Sub

    ’******************************************************************************
    ’ 関数名称 :mtxt_GotFocus()

    ’ 目的説明 :テキストボックスがfocusを選択する時。
    ’ 入力引数 :なし
    ’ 戻り値 :なし
    ’ 関数著者 :何楊 (hey@dhc.com.cn)
    ’******************************************************************************
    Private Sub mtxt_GotFocus()
    mtxt.SelStart = 0
    mtxt.SelLength = Len(mtxt)
    End Sub

  • From:http://www.microsoft.com/china/msdn/workshop/scrape.asp

    利用 Microsoft 的 HTML 分析器来获得 Web 站点的数据
    Jeremy Rule
    Microsoft Corporation
    2000年5月
    摘要: 本文讨论如何收集来自 Web 的信息,并借助 Internet Explorer 的可重用分析器组件,将它分布到其他 Web 页或数据库。(打印共 7 页)

    程序员面临的一个共同任务就是收集 Web 站点的数据,并将它分布到数据库或其他 Web 页。例如,程序员可能需要从气象站点获得天气预报图,从在线股票经纪人那里获得股票报价,以及从新闻站点获得行业新闻。然后,这些信息被放在一个 Web 页上,供 CIO、商人或销售经理使用。或者,也许程序员需要跟踪历来的气象资料,并需要每天将来自气象站的天气预报信息存入数据库。其应用不胜枚举。

    过去,这些选择相当受限制。现在,通过使用象 WinInet.dll 这样的 HTTP 组件或许多其他第三方组件,您就可以获取 Web 页,并利用几百种字符串处理功能来获得网页中您所感兴趣的部分。这一技术已在应用,但很不理想。如果您致力于计算机科学(或者有足够的时间),就会为 HTML 创建一个分析器,以标记 Web 页,然后分析您需要的网页部分。不过,由于 Internet Explorer 的体系结构中已包含了可重复使用的用分析器,这些都不需要了。

    Internet Explorer 不只是一个程序,更是许多可重复使用组件的集合与容器。在拆取 Web 页时,最有意思的两个组件是 shdocvw.dll 和 mshtml.dll。第一个组件 shdocvw.dll,包含称为 WebBrowser 的 Microsoft(R) ActiveX(R) 控件,它真实地显示 Web 页。在运行 Internet Explorer 时,显示 Web 页的主窗口就是这样的控件。第二个组件 mshtml.dll,含有能分析 WebBrowser 控件中所包含文档的 HTML 分析器。

    可能有这种情况,在您的应用程序内部,已经用 WebBrowser 控件来驻留 Web 页,但仍需要重新创建一个小浏览器来启动 Web 页的拆取。

    在文件菜单上,请单击新建工程,以创建“标准 EXE”,然后在工程菜单上单击部件,以添加 Microsoft HTML Object Library 和 Microsoft Internet Controls。(见图 1。)


    图 1.

    在工具箱中,可看见 WebBrowser 组件。拖动其中之一,文本框和主窗体上的命令按钮。将此文本框的 Text 属性设置为 “http://moneycentral.msn.com/”,将此命令按钮的 Caption 属性设置为“浏览(&B)”。(见图 2。)


    图 2.

    双击该命令按钮,然后在事件处理器中放入下列代码,导航至文本框中命名的 Web 站点:
    Private Sub Command1_Click()
    WebBrowser1.Navigate Text1.Text
    End Sub

    保存并运行该程序。试着按浏览按钮,导航到文本框中指定的站点。您已经创建了一个基本的 Web 浏览器 — 就其本身而言没什么用,甚至没什么意义,但它却是迈向 Web 拆取技术的第一步。


    回到工程中,在代码窗口中选择 WebBrowser1 对象,然后选择 DocumentComplete 的事件处理器。一旦整个 Web 页下载到此浏览器中,即触发该事件:
    Private Sub WebBrowser1_DocumentComplete_
    (ByVal pDisp As Object, URL As Variant)

    End Sub

    传递到该事件中的 URL 就是我们导航所至的位置,它在日后确定浏览器所在的页面时将更为有用。WebBrowser 控件有一个属性称为 Document(文档),可将其视为 IHTMLDocument 来处理:

    Private Sub WebBrowser1_DocumentComplete(_ ByVal pDisp As Object, URL As Variant)
    Dim Doc As IHTMLDocument2
    Set Doc = WebBrowser1.Document
    //下一步:分析该文档
    End Sub

    较新的 IHTMLDocument2 具有 IHTMLDocument 中无法使用的特性。可对系统使用 IHTMLDocument 替代老版本的 Internet Explorer,如果您有勇气的话,甚至可以使用 IHTMLDocument3。补充说明一下,我们假设您已经导航到 Word 文档或 XML 文档,而非 HTML 文档。不要将变量 doc 声明为 IHTMLDocument2,可将其声明为 Word 的文档或 XML 的 DOMDocument。

    在进行下一步之前,理解 HTML 文档的结构是非常重要的。和 XML 不一样,HTML 文档的组合有一定的自由度。例如,您会遇到未关闭标记的 HTML 文档。HTML 文档确实有某种结构。结构好的 HTML 文档通常具有下列元素:

    <HTML>
    <HEAD>
    header information like the <TITLE>
    </HEAD>
    <BODY>
    elements like <TABLE> and <A> and <IMG>
    </BODY>
    </HTML>

    请注意 HTML 的树状结构。标记包含标记又包含标记,如此等等。特别是,每一个标记元素都包含一个 0 到 n 个标记元素的集合。<TABLE> 标记可以包含 <TR> 标记。每个 <TR> 标记可以包含 <TD> 标记,后者又可以包含其他标记如锚或图像等。

    现在,分析整个 http://moneycentral.msn.com/,并在带 MSFT 符号的页填上第二个 <INPUT> 标记。然后,调用此窗体上的提交:
    Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    Dim doc As IHTMLDocument2
    Set doc = WebBrowser1.Document

    If URL = _
    "http:/
  • VB中MsFlexGrid控件的使用细则(收集)

    >> 将文本赋值给MsFlexGrid的单元格
    MsFlexGrid.TextMatrix(3,1)=”Hello”

    >> 在MsFlexGrid控件单元格中插入背景图形
    Set MsFlexGrid.CellPicture=LoadPicture(“C:\temp\1.bmp”)

    >>选中某个单元
    MsFlexGrid.Row=1
    MsFlexGrid.Col=1

    >>用粗体格式化当前选中单元
    MsFlexGrid.CellFontBold=True

    >> 添加新的一行
    使用AddItem方法,用Tab字符分开不同单元格的内容
    dim row as string
    row=”AAA”&vbtab&”bbb”
    MsFlexFrid1.addItem row


    >>怎样来实现MSFlexGrid控件单数行背景为白色,双数的行背景为蓝色?
    Dim i As Integer
    With MSFlexGrid1
    .AllowBigSelection = True ’ 设置网格样式
    .FillStyle = flexFillRepeat
    For i = 0 To .Rows - 1
    .Row = i: .Col = .FixedCols
    .ColSel = .Cols() - .FixedCols - 1
    If i Mod 2 = 0 Then
    .CellBackColor = &HC0C0C0 ’ 浅灰
    Else
    .CellBackColor = vbBlue ’ 兰色
    End If
    Next i
    End With

    >> MSFlexGrid控件如何移到最后一行
    MSFlexGrid1.TopRow = MSFlexGrid1.Rows – 1

    >>如何判断msflexgrid有无滚动条
    Declare Function GetScrollRange Lib "user32" (ByVal hWnd As Long, ByVal nBar As Long, lpMinPos As Long, lpMaxPos As Long) As Long
    Public Const SB_HORZ = &H0
    Public Const SB_VERT = &H1

    Public Function VsScroll(MshGrid As MSHFlexGrid) As Boolean ’判断水平滚动条的可见性
    Dim i As Long
    VsScroll = False
    i = GetScrollRange(MshGrid.hWnd, SB_HORZ, lpMinPos, lpMaxPos)
    If lpMaxPos <> lpMinPos Then VsScroll = True
    End Function

    Public Function HeScroll(MshGrid As MSHFlexGrid) As Boolean ’判断垂直滚动条的可见性
    Dim i As Long
    HeScroll = False
    i = GetScrollRange(MshGrid.hWnd, SB_VERT, lpMinPos, lpMaxPos)
    If lpMaxPos <> lpMinPos Then HeScroll = True
    End Function

    >>程序运行时,想动态增加MSFlexgrid的列数
    在第2列后插入一列:
    Private Sub Form_Load()
    Me.MSHFlexGrid1.Cols = 5
    MSHFlexGrid1.Rows = 2
    For i = 0 To Me.MSHFlexGrid1.Cols - 1
    Me.MSHFlexGrid1.TextMatrix(0, i) = i
    Me.MSHFlexGrid1.TextMatrix(1, i) = i
    Next
    End Sub

    Private Sub Command1_Click()
    Me.MSHFlexGrid1.Cols = Me.MSHFlexGrid1.Cols + 1
    Me.MSHFlexGrid1.ColPosition(5) = 3
    End Sub

    >> 请教MSFlexGrid中的对齐功能的使用
    设置MSFlexGrid1.ColAlignment(index)=n


    >>得到MSFlexGrid控件中当前选中的一行
    msflexgrid1.rowsel就是当前选中行

    >> 如何通过代码调节列宽度
    msflexgrid1.colwidth(i)=4000

    collected by junglesong
    junglesong@etang.com
    2004-1-21