My FAQ,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Visual Basic > 数据库
VB编程方法点滴
作者:gaoxfei 时间:2001-11-02 10:44 出处:互联网 责编:MyFAQ
              摘要:VB编程方法点滴
 

VB编程方法点滴

本人从事VB的教学与编程工作,在教学和工作中使用到了VB的编程的一些简单技巧想和初学者共勉。

一、如何利用数据库数据向组合框中添加例表项

向组合框中添加例表项,一般我们采用两种办法。一是在设计阶段通过List 属性来添加。二是通过在程序中直接使用AddItem “字符串”方法添加。象下例向组合框cmbTitle中添加数据就是此法。

With cmbTitle

        .Clear

        .AddItem "校长"

        .AddItem "副校长"

        .AddItem "主任"

        .AddItem "秘书"

        .AddItem "总管"

        .AddItem "干事"

        .AddItem "其他"

        .ListIndex = 0

End With

下面要谈的是我们有一个数据库,想把此数据库的某个字段添加到一个组合框中如何做法。我们可以建立一个过程如LoadDataToCombo,有三个参数一个是cmb,另一个是sTable,第三个是sField。其中cmb是要向其添加的组合框,sTable是要向组合框添加数据的数据库,sField是要向组合框添加的字段。实现方法见下程序。

Private Sub LoadDataToCombo(ByRef cmb As ComboBox, ByVal sTable As String, ByVal sField As String)

    cmb.Clear

    Dim rs As New ADODB.Recordset

    rs.Open "SELECT " & sField & " FROM " & sTable, cn.ConnectionString, adOpenKeyset, adLockReadOnly

    While Not rs.EOF

        cmb.AddItem rs.Fields(sField).Value

        rs.MoveNext

    Wend

    rs.Close

    Set rs = Nothing

    If cmb.ListCount > 0 Then cmb.ListIndex = 0

End Sub

例把Manager 数据库中的ManagerName字段添加到cmbMan中可以用如下命令调用。

LoadDataToCombo cmbMan, "Manager", "ManagerName"

二、在VB中实现数据库表格打印的方法

方法一:在工程菜单上,单击添加 Data Enviroment向工程中添加一个设计器。单击设计器选项卡。并单击数据环境把设计器添加到菜单上。右键单击“Connection1”图标,然后单击添加命令显示Command1对话框。同时改变其属性,添加连接,将数据库表格连接到Command1上。

工程菜单上,单击添加 Data ReportVisual Basic 将把它添加到您的工程中。单击设计器选项卡,并单击Data Report把设计器添加到菜单上。在属性窗口上,单击数据源,然后单击相应的命令。然后单击DataMember并单击Customers 从数据环境设计器中,把OrderDate字段(在Orders命令下)拖到细节Orders_Detail部分。同时在细节部分添加一些横线和竖线即可。具体细节可以参照MSDN中“创建一个简单数据报表”一节。

方法二:实际上我们可以有更直接的方法,就是利用Printer对象的Print 方法,同时利用区位码中的制表符号和TAB函数更灵活的实现数据库表格的打印。下面是一个简单例子,可参考之。

Private Sub cmdprint_Click()

Dim n As Integer

Dim rs As New ADODB.Recordset

rs.Open "SELECT * FROM jggz", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\jggz\jggz.mdb;Persist Security Info=False", adOpenStatic, adLockPessimistic

n = 0

rs.MoveFirst

Form1.Print "┌────┬────┐"

While Not rs.EOF

    Printer.Print "" & rs.Fields("姓名").Value; Tab(11); ""; rs.Fields("课时工资"); Tab(21); ""

   

    rs.MoveNext

    n = n + 1

    If n / 5 = Int(n / 5) Or rs.EOF Then

        Printer.Print "└────┴────┘"

        Printer.Print "┌────┬────┐"

    Else

        Printer.Print "├────┼────┤"

    End If

Wend

Printer.Print "└────┴────┘"

rs.Close

End Sub

附件1:制表符号区位对照

区位

0904

0906

0916

0920

0924

0928

0932

0940

0948

符号

区位

0956

0964

0905

0907

0919

0923

0927

0931

0939

符号

区位

0947

0955

0963

0979

0936

0944

0951

0959

 

符号

 

三、利用WinSock实现简单网络编程

利用WinSock可以实现TCPUDP协议通信。我们知道,网络通信要找三个地址即网络地址、主机地址、服务地址(端口号)。通过机器的IP地址和子网掩码计算可以得到网络和主机地址。而每个机器的服务地址(端口号)有65536个。下面就谈一下怎样利用WinSock实现网络通信。

服务器端程序编写:建立一个窗体,添加一个Text控件用于存放发送信息的内容、一个命令按钮(cmdSend)用于发送信息、两个WinSock控件(sckListen,sckServer),一个用于监听、一个用于接受。把sckServerLocalport 属性设为8001(一定不要和sckListen的端口号一样即可)。

程序代码如下:

Private Sub cmdSend_Click()

    sckServer.SendData Text1.Text

End Sub

 

Private Sub Form_Load()

    sckListen.LocalPort = 8000

    sckListen.Listen

End Sub

 

Private Sub sckListen_ConnectionRequest(ByVal requestID As Long)

    sckServer.Accept requestID

    cmdSend.Enabled = True

End Sub

 

Private Sub sckServer_DataArrival(ByVal bytesTotal As Long)

    Dim s As String

    sckServer.GetData s, vbString, bytesTotal

    MsgBox s

End Sub

工作站端程序编写:建立一个窗体,添加一个Text控件用于存放发送信息的内容、一个命令按钮(cmdSend)用于发送信息、一个WinSock控件(sckClient)用于接受信息。把sckClientLocalport 属性设为8002

程序代码如下:

Private Sub cmdSend_Click()

    sckClient.SendData Text1.Text

End Sub

 

Private Sub Form_Load()

    Dim sIP As String

    sIP = InputBox("Please Input IP address", sckClient.LocalIP)

    sckClient.Connect sIP, 8000

End Sub

 

Private Sub sckClient_DataArrival(ByVal bytesTotal As Long)

    Dim s As String

    sckClient.GetData s, vbString, bytesTotal

    MsgBox s

End Sub

使用方法:在服务器端启动服务程序,运行工作站程序,输入服务器主机的IP地址,在Text 框中输入要发送的内容,单击发送命令按钮,此时服务器就会接受到信息。这时在服务器的文本框输入发送的内容,单击发送命令按钮,此时工作站就会接受到信息。

当然,这只是个简单的测试程序,在实际应用中可以利用变量、数据库等做很多事情。同时这个程序只能一对一的传送,想实现一个服务器多个工作站方式,可以在服务器端多建立几个Winsock接收控件,一个控件对应一个工作站,但要注意,Winsock控件的Localport 属性要不一样。即一个端口对应一个服务。

高晓飞

 

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 myfaq.com.cn All rights reserved. www.myfaq.com.cn 版权所有