阅读:1927回复:5
vb 编程的一点心得和体会
(1)
消息框中按钮之定义 MsgBox strMsg1, c1+c2+c3 , strMsg2 其中 strMsg1 为提示信息 strMsg2 为标题内容 c1+c2+c3 定义按钮形式,具体如下: c1: 按钮的类型 0 vbOkOnly 只有一个按钮“确定” 1 vbOkCancel 两个按钮“确定”和“取消” 2 vbAbortRetryIgnore 三个按钮“终止”、“重试”和“忽略” 3 vbYesNoCancel 三个按钮“是”、“否”和“取消” 4 vbYesNo 两个按钮“是”和“否” 5 vbRetryCancel 两个按钮“重试”和“取消” 返回值: vbOk 1 确定 vbCancel 2 取消 vbAbort 3 终止 vbRetry 4 重试 vbIgnore 5 忽略 vbYes 6 是 vbNo 7 否 c2: 图标的类型 16 vbCritical × 32 vbQuesion ? 48 vbExclamation ! 64 vbInformation i c3: 默认焦点 0 vbDefalaultButton1 左起第一个按钮自动获得焦点 256 vbDefalaultButton2 左起第二个按钮自动获得焦点 512 vbDefalaultButton3 左起第三个按钮自动获得焦点 和为: 00 0000 0000 B c3 c2 c1 例: 1. i = MsgBox " 是否要删除该条记录 ? ", 1+32+0 , " 请确认" 2. MsgBox " 是否要删除 ! ", 0+32+0 , " 请...." (2) 判断表的存在 Function M_fucScanTable(strTName As String) As Integer ' 搜索表 strTableName On Error GoTo OpenErr Set MyRsm = New Recordset MyRsm.Open "Select * From " ; strTName,Cn, adOpenKeyset, adLockOptimistic MyRsm.MoveLast M_fucScanTable = MyRsm.RecordCount ' 返回记录数,0 为空表 MyRsm.Close Set MyRsm = Nothin Exit Function OpenErr: M_fucScanTable = -1 ' 无表 End Function (3) 动态建立表 strSQL = "CREATE TABLE " ; strTName ; _ "( Xh char(3) Not Null Primary key,Mc char(10),Xb char(2)," ; _ "Csrq char(10),Zw char(20),Gz numeric(9,2),Bz char(30),Xp image )" cn.Execute strSQL, , adCmdText 其中: Primary key 为设置主键(唯一) (4) 插入记录 Insert strSQL = "Insert Into A01(Xh,Mc,Xb,Csrq,Zw) " ; _ "Values ( '" ; Xhp ; "','" ; Mcp ; "','" ; Xbp ;"','" ;Rqp; "','" ; Zwp ; "' " Cn.Execute strSQL (5) 导出表格到excel Dim newxls As Excel.Application Dim newbook As Excel.Workbook Dim newsheet As Excel.Worksheet Set newxls = CreateObject("excel.application") newxls.Visible = True Set newbook = newxls.Workbooks.Add Set newsheet = newbook.Worksheets(1) For i = 0 To 7 For j = 0 To 4 MSFlexGrid1.Row = i MSFlexGrid1.col = j newsheet.Cells(1, 3) = Trim(Combo1.Text) ; "班" newsheet.Cells(1, 4) = "第" ; bytXq ; "学期" newsheet.Cells(1, 5) = "课程表" newsheet.Cells(i + 3, j + 2) = Trim(MSFlexGrid1.TextMatrix(i, j)) Next j Next i 注意此项操作你先要 引用 excelctl type library 和 microsoft excel 9.0 object library (6) with 语句的应用 With msflexgrid1 .CellAlignment = 4 .TextMatrix(1, 0) = "考试编号" .TextMatrix(1, 1) = "学号" .TextMatrix(1, 2) = "姓名" .TextMatrix(1, 3) = "班号" .TextMatrix(1, 4) = "课程名称" .TextMatrix(1, 5) = "分数" End With (7) 响应回车 Private Sub Text2_KeyPress(KeyAscii As Integer) ' Text2 响应回车键 If KeyAscii = 13 Then Command1.SetFocus End If End Sub (8) 隐藏任务栏 Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _ ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long Private Sub Form_Load() SetWindowPos Me.hwnd, -1, 0, 0, 0, 0, 3 End Sub 希望能给您在编程时带来一点方便 |
|
|
1楼#
发布于:2005-09-20 10:56
<img src="images/post/smile/dvbbs/em02.gif" /><img src="images/post/smile/dvbbs/em02.gif" /><img src="images/post/smile/dvbbs/em02.gif" /><img src="images/post/smile/dvbbs/em05.gif" /><img src="images/post/smile/dvbbs/em05.gif" />
|
|
2楼#
发布于:2005-05-02 22:50
<img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em01.gif" />
|
|
|
3楼#
发布于:2005-04-21 21:52
<P>总结得挺好的</P><P>支持</P>
|
|
4楼#
发布于:2005-04-16 10:00
<TABLE cellSpacing=0 cellPadding=0 width="90%" border=0><TR><TD 520px; WORD-BREAK: break-all" width="100%">一. 条件判断语句
1 . 单行 if …… then 与 iif( …… ) 结构 例: If Text1.Text = " " Then msgbox “ 空值” 例 strdata = iff( a>b , text1.text , text2.text) 目标变量 条件 值1 值2 当a>b = true 时 strdata=text1.text 当a>b= false 时 strdata=text2.text 2. if ….. then ….. else ……. end if 例:If Size > 0 Then Text1.Text = "" Else Text1.Text = " ok " End If 应该注意的是此种结构的书写格式! 3. select case 结构 当需要完成多重判定的任务时,可以使用select case 结构 语法: Select 测试条件 Case 表达式1 语句组1 Case 表达式2 语句组2 ………. Case 表达式n 语句组n End Select 二. 循环语句 Vb主要有两种循环结构,即 do…..loop 和 for……next. 1. do….loop 结构 使用do 循环重复执行一语句块,并计算测试条件以决定何时结束循环,循环条件必须是一个数值或者值为true 或false 的表达式. Do….loop语句有四种形式: [1] do while [2] do ……. …….. Loop Loop while [3] do until [4] do ……… …….. Loop Loop until 退出do循环用 Exit do 2 for ……. Next 结构 语法: for 计数器= 初值 to 终值 …………. Next 例: dim intz as integer , inty as integer For intz =1 to 100 If intz mod 2 = 0 then inty =inty+1 next 其中的 计数器 ,初值 和 终值 都必须是数值型! 三. 定义过程和函数 1. 定义过程 语法: private sub P_fcz( ) ……… End sub 例: 表格初始化. Private sub P_bgcsh( ) With msflexgrid1 .TextMatrix(1, 0) = "考试编号" .TextMatrix(1, 1) = "学号" .TextMatrix(1, 2) = "姓名" .TextMatrix(1, 3) = "班号" .TextMatrix(1, 4) = "课程名称" .TextMatrix(1, 5) = "分数" End With End sub 过程调用 call 过程名 2. 函数定义 语法: Function 函数名(参数 As 类型) As 类型 ………… End function 例: Function M_sf1(strn As String) As String Dim strSz As String, n As Integer, a As Integer, b As String n = Len(strn) strSz = " " a = n - 8 - 5 If n = 1 Then strSz = "hello" If n = 2 Then strSz = "pool" If n = 3 Then strSz = "how do yu do" b = Mid(strn, 6, a) End Function 函数调用 目标量=函数名( 参数 ) </TD></TR></TABLE> |
|
|
5楼#
发布于:2005-04-16 09:59
不同作用范围变量的声明方式
作用范围 局部变量 模块级变量 公用变量 声明方式 Dim,ststic Dim,private Public 声明位置 过程内部 通用部分 模块的声明段 其他过程能否调用 不能 能 能 其他模块能否调用 不能 不能 能 2. 变量的声明技巧 Public strSQL As String Dim intI As Integer 由上面的两个例子可以看出声明变量时应该注意变量的命名规则 变量类型 ; 变量名 变量一定要有意义,这样的好处是当看到变量时很快就能知道变量的类型从而避免了变量赋值时出现类型不匹配的错误,而且增加了程序的可读性. 3 在应用变量时一定要保正变量已赋初值. 二. 常量 用户一但定义了常量,在以后的程序中不能再给这个常量赋新值,否则在程序运行时,vb会错误提示. 定义常量的例子: Public Const Db_Name1 = "f:\qqqq\db\zhang.mdb" 关键字 常量名 = 常量的值 |
|
|