VB编程方法点滴

原创 2002年06月25日 09:58:00
 

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

 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

符号

 

三、利用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 属性要不一样。即一个端口对应一个服务。

高晓飞

 

VB+DX游戏编程教程 第一话:初识DX

今天为大家要讲的是VB与DirectX相结合的游戏编程,说是教程也过于夸张了,也算是本人在学习过程中的一些学校笔记和心得吧。首先得知道我们游戏的画面都是一帧一帧的渲染出来的。而每一个画面都是由三角形(...
  • uoyo_blog
  • uoyo_blog
  • 2015年09月01日 23:18
  • 603

VB 用CommonDialog选择打开多个文件实例

在Visual Basic中,通常用CommonDialog公共对话框来选择磁盘上的文件,在其Flags属性中加上cdlOFNAllowMultiselect风格后,就允许选择多个文件。当只选择一个文...
  • kartik
  • kartik
  • 2013年03月12日 11:50
  • 1493

VB中WinSock控件的属性、方法、事件及应用

一、WinSock简介        Socket(套接字)最初是由加利福尼亚大学Berkeley(伯克利)分校为UNIX操作系统开发的网络通信接口,随着UNIX的广泛使用,Socket成为当前最流...
  • u013082684
  • u013082684
  • 2015年07月29日 17:33
  • 4398

line控件和方法

在VB6中,画直线有两种途径 line方法line控件 line方法,就是在代码中用line(x1,y1)-(x2,y2)直接画线 这种方式看似简单,但也容易出错 看链接,出现图形部分显示不出来的问...
  • yiyiyicz
  • yiyiyicz
  • 2014年12月11日 20:58
  • 2588

用VB实现客户——服务器(TCP/IP)编程实例

现在大多数语言都支持客户-服务器模式编程,其中VB给我们提供了很好的客户-服务器编程方式。下面我们用VB来实现TCP/IP网络编程。   TCP/IP协议是Internet最重要的协议。VB提供了W...
  • u014112224
  • u014112224
  • 2014年03月16日 17:44
  • 3814

VB6多线程探秘

VB6稳定多线程,一直是争论很大的的。 比较稳定的多线程,一般使用 set MT=CreateObject("VbMT.MT") 但其他单元线程之间,是无法访问的,只有在创建者中,才可使用该对象...
  • test2002
  • test2002
  • 2016年09月08日 17:33
  • 1232

VB Socket编程 框架

VB Socket编程(Winsock控件创建TCP/IP客户机/服务器程序) 好东西,所以收藏      Winsock控件建立在TCP、UDP协议的基础上,完成与远程计算机的通信。即使...
  • snlei
  • snlei
  • 2013年09月03日 13:50
  • 7600

【VB6】实现VB6中类的静态方法

原创文章,欢迎支持 在VB的使用过程中,较为高级和较为具有兼容性的编程方式是创建类模块。 比如创建了一个数组创建类,专门用来创建特定类型的数组,它被存在一个“ArrayHelper.cls”文件中...
  • greatbody
  • greatbody
  • 2016年02月13日 19:52
  • 1242

手把手教你用VB制作ActiveX控件

随着控件在可视化编程中地位地位提高,控件也成了编程中最重要的一部分。许多VB编程者也许苦于没有好看的控件,今天登高望远来教大家如何制作ActiveX控件。 一、新建工程       1.选择Acti...
  • qq_33582668
  • qq_33582668
  • 2016年06月11日 19:41
  • 3942

芯钰科运动控制卡--VB 快速搭建软件平台(运动控制卡编程示范)

首先,将函数包放入系统 找到VB函数包,复制 将YK8A04VB函数包放入C盘windows/system32     1定长运动控制示范程序 2 打开或初始化卡 /**************...
  • evenou
  • evenou
  • 2014年03月23日 22:47
  • 2462
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VB编程方法点滴
举报原因:
原因补充:

(最多只允许输入30个字)