Chinaunix首页 | 论坛 | 博客
  • 博客访问: 682384
  • 博文数量: 113
  • 博客积分: 7070
  • 博客等级: 少将
  • 技术积分: 930
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-02 21:03
文章分类

全部博文(113)

文章存档

2012年(2)

2011年(10)

2010年(19)

2009年(39)

2008年(20)

2007年(23)

我的朋友

分类:

2008-07-26 11:06:03

1、关闭程序
虽然在程序中有Exit按键,并通过End结束程序,但当点叉时,偶尔会出现界面虽然没有了,但无法关闭进程的情况发生,所以应该加入下面这句:
Private Sub Form_Unload(Cancel As Integer)
  End
End Sub
 
2、添加背景音乐
添加Microsoft Multimedia Control 6.0 即MMControl部件。根据需要更改按键设置,然后添加如下代码:
Private Sub Form_Load()
    MMControl1.FileName = App.Path + "\Ninghtingale.mp3"
    MMControl1.Command = "Open"  '连接音乐文件
    MMControl1.Command = "Play"  '播放文件
End Sub
这样就会在打开时播放背景音乐了,播放模式:单曲播放。
 
出错:当取消第3句:MMControl1.Command = "Play"后,在VB下MMControl的运行按钮可用,但当在生成的exe文件中却都是不可用状态。
调试:在MMControl属性的控件选项卡中Play加选“播放有效”。
 
3、调用DOS命令
类似Shell "cmd /c DOS_Command", 0(or 1)
注意参数/c,于是可以监视CMD.EXE进程,这个进程不存在的时候说明已经执行完毕。
参数0/1,当为0时不显示CMD界面,反之则显示界面。
例如:
Private Sub Command1_Click()
  Shell "cmd /c ipconfig/all>c:\test.txt", 1
  Shell "cmd /c move a.txt " & App.Path & "\Documents\" & Trim(txtName) & ".txt", 0
End Sub
 
4、显示图片
添加Image部件,设置stretch属性(True表示图片平铺在控件内,False表示图片按原大小显示)。添加如下程序段:
Image1.Picture = LoadPicture(App.Path & "\Images\" + TmpName + ".jpg")
 
5、Adodc部件
添加Microsoft ADO Date Control 6.0 (OLEDB)部件,包含了Adodc、DataCombo等控件。设置Adodc的属性时,如果选择设置“连接字符串”,则在连接的数据中选择合适项:例如,ACCESS 2003应选
Microsoft Jet 4.0 OLE DB Provider选项,如果是SQL的话就应该选择Microsoft OLE DB Provider for SQL Server。然后设置数据库,这里的数据库并不是通过扩展名来识别的,而是通过文件的实际格式识别的,即是说即使是命名为a.dat的ACCESS文件也可以正常访问。设置完成,可以点击“测试连接
”按钮进行测试。确定返回后,在“记录源RecordSource”选项页中,命令类型选择“8-adCmdUnknown”,在CommandText中填入相应的SQL语句。刷新方法如下:
  Adodc1.RecordSource = "SELECT * FROM Dvds ORDER BY DvdID"
  Adodc1.Refresh
 
6、DataCombo部件
要使用DataCombo部件,需要先添加Adodc控件。设置Adodc属性,然后依次设置DataCombo部件的DataSource、RowSource、ListField等属性。这里应该注意如果设置了DataFiled可能导致在DataCombo控件中输入字符时提示错误的情况,如果没有必要就不要设置该项了。根据需要可以设置Style属性,dbcDropDownCombo、dbcSimpleCombo、dbcDropdownList等分别是可输入的Combo、不可输入的Combo、List样式。
 
7、DataGrid部件
添加DataGrid和Adodc控件,设置其DataSource属性连接到Adodc控件,右击DataGrid控件,编辑列的数量与连接数据库字段等属性,然后当刷新Adodc控件时即可刷新DataGrid控件。然而为了追求界面简洁有时需要对其列属性进行编程。下面是一个简单的实例:
Dim GCap(20) As String      'DataGrid的列名
Dim GDat(20) As String      'DataGrid的数据
Dim GWid(20) As Integer     'DateGrid的列宽
Dim GTaxis(3) As String     'DateGrid的排序
Dim TaxText(3) As String    '排序的文字说明
Dim GNum As Integer         '表的记录项列数
Dim GTax As Integer         '单选项确定排序
 
Public Function InitArr(OriCap() As String, OriDat() As String, OriWid() As Integer, TaxTxt() As String, TaxDat() As String) As Integer
    InitArr = 13         '元素个数
    OriCap(0) = "编号": OriDat(0) = "AID": OriWid(0) = 400        'Grid显示设置
    OriCap(1) = "名称": OriDat(1) = "AName": OriWid(1) = 2500
    ............
End Function
 
Private Sub GridRefresh(listType As Boolean)
    Dim I As Integer
    Dim c As Column
    Dim itmp As Integer
    Adodc1.RecordSource = "SELECT * FROM Animation ORDER BY AID"
    Adodc1.Refresh
    GNum = MyAc.InitArr(GCap, GDat, GWid, TaxText, GTaxis)  '赋值操作
 
    For I = 0 To 3
        TypeOpt(I).Caption = TaxText(I)
    Next I
   
    For Each c In DataGrid1.Columns
        If itmp < GNum Then
            With c
                .Visible = True
                .Caption = GCap(itmp)
                .Width = GWid(itmp)
                .DataField = Adodc1.Recordset.Fields(GDat(itmp)).Name
                '.Alignment = dbgRight
            End With
            itmp = itmp + 1
        Else
            c.Visible = False
        End If
    Next c

    Adodc1.RecordSource = "SELECT * FROM Animation ORDER BY " + GTaxis(GTax)
    Adodc1.Refresh
End Sub

注意:DataGrid控件列的数量应该足够多(>= 数据列项),否则提示error。
 
8、字符串相关
(1) 对数据长度的要求 
    当TextBox或其他部件的对应数据声明为String时注意其长度不能超过VB中String的最大长度,而且不能超过数据库中相应数据项的长度要求。对于可能出项这种现象的地方应该设置MaxLength。
 
 
 
11、查找数据库内容出错
出错:当在VB下点击“启动”调试时,可以正常执行查找字符串功能;执行生成的exe文件,查找部分项目中的字符串时却报错:内存溢出;并且点击确定之后,提示“运行时错误'-2147217900 (80040e14)':Automation 错误”。
调试:经过测试发现,错误的原因主要与查找的字段数量、字段内容以及记录数量有关,字段越多,数据库中数据类型为“备注”的字段越多,数据记录越多越可能出项这种问题。由于可能与VB自身有关,本人暂时不做深究,只提出一个妥协的办法:使用错误处理机制,使程序在搜索出错的情况下也可以正常运行。
即在搜索过程的前端和末端分别添加如下代码:
 On Error GoTo SchErr
 ......
 Exit Sub
 SchErr:   MsgBox "搜索出错"
 
 
v 0.1.4
阅读(1693) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~