VB(Visual Basic)程序设计教案

您所在的位置:网站首页 VB界面设计教案 VB(Visual Basic)程序设计教案

VB(Visual Basic)程序设计教案

2024-06-20 00:16| 来源: 网络整理| 查看: 265

文章目录:

第一章 前言和软件安装

1.发展方向 

1.1 学习方向 

1.2 学习平台

1.3 计算机学习资源

1.4 记笔记

1.5 教程资源平台

1.6 代码管理保存

1.7 动漫游戏

2.教材大纲

3.简介

4.发展史

5.优缺点和应用场景

6.功能与特点

7.下载安装

第二章 窗体及其操作

1.新建工程和输入规范

2.熟悉开发环境(常用组件)

3.窗体设置

3.1 窗体添加移除

3.2 像素

3.3 窗体事件

3.4 窗体方法

3.5 移动窗体或控件

3.6 坐标设置

第三章 输入输出

1.打印——print 

2.数据输入——inputbox数据输入对话框

3.数据输出——msgbox消息框

4.打印机直接输出printer

5.窗体输出printform到打印机

第四章 语言基础

1.添加组件控件

2.属性

3.添加事件

4.颜色

5.数据类型

6.常量和变量

6.1 常量

6.2 变量

7.内部函数

8.运算符 

算术运算符

比较运算符(关系运算符)

逻辑运算符(布尔运算符)

字符串运算符

位运算符(了解)

运算符优先级

9.表达式

第五章 程序控制结构

1.流程图(了解) 

2.选择结构if select

if...then

if...then...else

if...then...elseif...then 

iif 

if语句的嵌套 

select case 

3.循环结构for while do

for...to 

for...each...in

while...wend

do...while...loop                do...loop...while

do...until...loop                 do...loop...until

4.其他结构控制语句

5.闲置循环与DoEvents语句(了解)

第六章 数组

1.定义 

2.静态数组和动态数组

3.数组的基本操作

4.控件数组

第七章 过程(sub子程序 function函数)

1.sub子程序过程

2.function函数过程

3.参数传送

4.optional可选参数与paramarray可变参数

第八章 菜单、工具栏与对话框设计

1.菜单编辑器 

2.对话框

第九章 多重窗体与MDI窗体程序设计

1.多窗口 

2.工程结构

第十章 文件操作

1.文件的打开open与关闭close

2.文件操作语句和函数

3.顺序文件(写print write、读input)

4.随机文件(写put、读get)

5.文件系统控件

6.文件基本操作

第十一章 VB数据库编程技术

1.相关概念 

2.数据控件

3.建立数据库并操作数据库

4.全代码操作(感兴趣了解)

第十二章 实战项目

“题库”小试牛刀

单项选择题(15题共60分,每题4分) 

填空题(5题共10分,每题2分) 

编程题(2题共30分,每题15分)

第一章 前言和软件安装 1.发展方向  1.1 学习方向 

Web前端学习路线

Java学习路线 

嵌入式开发学习路线

如何知道企业的需求技术:去招聘软件看企业的要求

前端、后端、测试、运维、UI、网络安全、游戏开发..... 1.2 学习平台

程序员视频学习平台

1.3 计算机学习资源

计算机学习资源

1.4 记笔记

在线平台:程序员常用的博客平台 

私有(可分享):在线最好用的免费思维脑图、思维导图、笔记、流程图 

1.5 教程资源平台

IT计算机前后端相关专业——常用的学习教程及在线编程工具

1.6 代码管理保存

 常用开源软件开发平台和仓库(学生的福利)_代码仓库有哪些 开源

1.7 动漫游戏

AI聊天和AI绘画和AI视频

1.游戏策划:需要学习数字游戏宏观环境解析、数字游戏高级策划理论等 2.游戏原画:需要学习原画艺术基础、动物角色设定等 3.UI设计:需要学习UED概述、GUI设计基础等 4.场景制作:需要学习CG艺术基础、游戏场景道具等 5.角色制作:需要学习CG艺术基础、游戏道具等 6.特效制作:需要学习3Ds max游戏特效制作案例讲解等 7.游戏程序制作:需要学习游戏程序设计、算法与数据结构等 游戏引擎:Unity、Unreal Engine、Godot Engine..... 2.教材大纲

上课投屏演示 

第一章 VB入门(简介软件环境) 第二章 窗体及其操作 第三章 VB程序设计语言基础 第四章 数据输入输出 第五章 程序控制结构 第六章 VB常用标准控件 第七章 使用数组 第八章 过程(函数) 第九章 菜单、工具栏与对话框设计 第十章 多重窗体与MDI窗体程序设计 第十一章 文件操作 第十二章 VB数据库编程技术 3.简介 ★Visual Basic简称为VB(视觉基础),是面向对象的程序设计语言 ★是可视化的Basic,保留了Basic语言简单、易用的特点,又扩充了可视化设计工具 ★可以轻松地设计出界面美观、使用方便、功能强大的应用程序 4.发展史 ★VB语言的前身是1964年诞生的BASIC语言(基本BASIC) ★以DOS为代表的字符界面操作系统下推出了各种版本的BASIC语言,如True BASIC、Quick BASIC、Turbo BASIC、QBASIC(结构化BASIC) ★以Windows为代表的图形界面操作系统下,微软公司相继推出了Visual Basic 1.0、2.0、直到6.0版(可视化BASIC) ★为了满足网络应用程序的开发要求,微软公司又相继推出了Visual Basic.NET 2002、2005、2010等(网络化BASIC) 5.优缺点和应用场景 优点 1.易学易用:语法简单容易上手 2.快速开发:可用快速创建图形画界面和数据访问应用程序 3.面向对象:封装、继承、多态 4.丰富的控件库:可用轻松创建各种图形化界面 5.广泛应用:windows平台上的各种应用程序(办公软件 数据库应用程序 游戏等) 缺点 1.性能较低,运行速度较慢:比其他编程语言 2.不支持跨平台:只能运行在windows平台上面(限制了其应用范围) 3.不适合大型项目:性能较低不适合开发大型项目 4.代码可读性差:以为语法比较简单,不利于维护和升级 5.缺乏严格的类型检查:容易出现类型错误 应用场景: 1.windows桌面应用程序:VB最初就是作为windows桌面应用开发工具而出现的 原因:VB可用直接调用windows api 2.办公自动化:VB可以与office等办公软件深度集成,提供宏和自定义函数的支持,可以方便的实现自动化操作(自动化批量处理excel和word等) 3.数据库应用快速开发:VB可以使用ADO来访问数据库 4.web开发:asp就是基于VBScript脚本语言构建的 6.功能与特点 ★可视化的界面设计工具 设计界面的图形元素以“控件”工具的形式给出 ★面向对象的程序设计方法 采用“对象+消息”设计模式,将一个复杂问题分解为一个个对象 ★事件驱动的编程机制 程序的执行通过在对象上触发“事件”驱动运行 ★结构化的程序设计语言 编写事件过程代码仍然采用结构化程序设计方法 7.下载安装

这里软件安装可能会很慢因为是比较老的东西了 

找到SETUP.EXE鼠标右键管理员运行(不然可能报错哟!获取更高的权限) 安装如果出现卡顿和无响应 1.等待(因为显示无响应可能是假死状态) 2.可以查看任务管理器进程状态(ctrl+alt+delete)和电脑最近安装软件(Microsoft下面)是否有VB来解决 如果安装了就可以结束任务,打开VB中文版软件就是 3.重启电脑可能是查住了,重启可能进入下一步安装

Visual Basic 6.0(VB6.0)最详细安装教程                        点我直接获取软件 验证码6za8

报错

问题:vb Automation错误 定义的应用程序或对象错误 解决:将vb.exe右键属性,在兼容性栏,勾选以兼容模式运行[Windows XP (Service Pack 3)],以管理员方式运行即可解决 第二章 窗体及其操作 1.新建工程和输入规范 点击标准exe格式 设计VB应用程序的基本步骤如下: 1.设计用户界面 2.对象属性设置 3.编写程序代码 4.运行调试、改错、运行程序生成可执行文件 5.保存程序文件 第一种:文件——>保存工程——>保存的路径(先保存窗体frm 再保存工程vbp) 第二种:工程资源管理器中——>鼠标选中工程——>右键——>保存工程 6.生成可执行程序 exe(脱离vb环境):文件——>生成显示exe——>选中位置并命名 7.打包:外接程序——>外接程序管理器——>打包和展开向导——>打包 VB代码输入规则 1.VB代码不区分字母的大小写 VB对程序代码进行自动转换:关键字、函数名、对象名、属性、方法等,首字母大写其余字母小写 若关键字由多个单词组成,每个单词首字母大写。用户命名的标识符以首次定义为准 2.语句书写自由 一行上可以书写多句语句,语句间用冒号“:”分隔 单行语句可分多行书写,在本行后加续行符:空格和下划线 若一条语句在一行中写不完,可分成多行写,行尾加空格和下划线“ _”来进行连接 3.注释(方便阅读,对程序的说明,不会被运行和执行) 单引号':会显示绿色 rem + 说明:放在新的一行,不能和代码同行 4.注意缩进:方便查看 5.后面没有结束的符号,但是有代码标记end 6.标点符号应该为英文 7.一条语句长度不应该超过1023个字符 8.赋值 对象.属性 = 目标操作符 = 源操作符 [let]变量 = 值 两边的类型必须相同 9.对象命名规则 对象名=前缀+自定义名称( cmd_B)  10.控制语句 暂停语句:stop 结束语句:end(可以关闭窗体) 2.熟悉开发环境(常用组件)

前端布局扩展

指针:数据指向 PictureBox:可以设置背景和插入图片 Label:标签 TextBox:文本框 multiline:显示多行 Frame:框架 CommandButton:命令按钮 default = true等价于回车键 style=1按钮里面可以添加图片 downpicture按钮按下显示图片 CheckBox:复选框 OptionButton:单选按钮 ComboBox:下拉组合框 style list内容 ListBox:列表框 list显示内容 对象.text 对象.additem 内容 对象.clear 对象.removeitem (me.对象.listindex) sorted排序 HScrollBar:滚动条(水平) Label1.Caption = "滚动条值为:" & HScroll1.Value VScrollBar:滚动条(垂直) Timer:时钟监听,定时器 me.caption=time DriveListBox:下拉磁盘(驱动器列表框、盘符列表控件) DirListBox:当前磁盘盘符文件(文件夹列表控件) FileListBox:文件列表框 Shape:形状 BackStyle: 0——透明的 1——不透明的 Shape: 0——长方形 Rectangle 1——正方形 Square 2——椭圆 Oval 3——圆 Circle 4——圆角长方形 Rounded Rectangle 5——圆角正方形 Rounded Square Line:线 Image:图片 loadpicture("C:\image\666.gif") Data:数据 OLE:对象链接与嵌入 3.窗体设置 3.1 窗体添加移除 添加 方法一:工程——>添加窗体 方法二:在右侧工程中——>鼠标右键添加 移除 方法一:工程——>移除 方法二:在右侧工程中——>鼠标右键移除 3.2 像素 工具——>选项——>通用 1像素 = 15缇(和榜、英寸也有关系) 3.3 窗体事件 Click:单击 DblClick:双击 KeyDown:按下按键 KeyUp:松开按键 KeyPress:按下并松开按键 MouseDown:按下鼠标按键 MouseUp:释放鼠标按键 MouseMove:鼠标移动 MousePointer:鼠标光标形状 0——15 MouseIcon:鼠标形状 Load:载入 me.image1.picture=loadpicture() Unload:卸载 Activate:活动 Deactivate:非活动 DragDrop:拖放 DragOver:拖动 dragmode:拖放的模式 0手动 1自动 dragicon:移动对象的图标 对象.drag:是否允许拖动 1是 2否 me.image1.move x,y me.image1.picture=loadpicture("路径") me.image1.picture=nothing GotFocus:获得焦点 me.text1.setfous LostFocus:失去焦点 Paint:绘画 3.4 窗体方法 显示:Show 隐藏:Hide 对象名.Show 对象名.AutoRedraw=true 设置焦点:SetFocus 清除:Cls 画圆:Circle 画线:Line 3.5 移动窗体或控件 对象名.Move 左[,上,宽,高] 3.6 坐标设置 返回下一次输出的位置 CurrentX方法 CurrentY方法 返回字符串的高度和宽度 对象名.TextHeight(字符串) 对象名.TextWidth(字符串) 第三章 输入输出 1.打印——print  1.print [对象名].Print [表达式][,|;] 逗号:标准输出格式(分区 输出) 分号/空格:紧凑输出格式 字符串和变量之间有连字符:Print "x=" & x 空一行:print 举例 Print 111,222 Print 111;222 Print 111 222 Print "a ="; 1 print "a="&1 Print a = 1 2.安装给出的格数输出Format:输出的前面没有空格 format(数值表达式,格式字符串) # 数字,不前后补0 print format(55.6789,"##.##") 55.68 0 数字,在前后补0 print format(55.6789,"##.0") 55.7 . 小数点 print format(12.345,"##.##") 保留两位小数 , 千位分隔符 print format(56789.40,"##,###.00") 56,789.40 % 百分比 print format(0.001,"00.0%") 0.1% $ 美元符号 +、- 正负号 E+、E- 指数符号 print format(55555555,"#.00E+00") 5.56E+07 3.方法 Cls清除Print方法显示的文本 对象名.Cls Move [对象.]Move 左边距离,上边距离,对象宽度,对象高度 4.空格 Tab空格函数:将光标移到参数N指定的位置开始输出 Tab(n) 左边算 Spc跳过n个空格 Spc(n) 之间来算 Space$(n)返回n个空格 可以参与运算 5.不换行显示的 print "不换行"; 2.数据输入——inputbox数据输入对话框 inputbox(prompt,[tiltle],[default],[xpos,ypos],[helpfile,context]) prompt:字符串提示信息 tiltle:标题 default:默认信息 xpos,ypos:坐标位置 helpfile:帮助文件 context:帮助目录号 举例 Dim tmp As String tmp = InputBox("请输入信息", "输入", "我是默认信息", 100, 100) 3.数据输出——msgbox消息框 msgbox(msg,[type],[title],[helpfile,context]) msg:提示信息 type:种类 vbokcancel:确认或取消(默认是确定按钮) vbexclamation:警告图标提示 vbquestion:问号图标提示 vbyesnocancel:是 否 取消 title:标题 helpfile:帮助文件 context:帮助目录号 返回值 1 vbok vbyes 2 vbcancel 3 终止 举例 Dim tmp As String tmp = MsgBox("你好", vbExclamation, "标题") msgbox "信息" 4.打印机直接输出printer 结束语句:printer.enddoc end等价于esc 清除:对象.cls 页码:printer.page 换页:printer.newpage 换行:print chr(13) 回车+换行 dim NL as string NL = chr(10) + chr(13) Print NL 5.窗体输出printform到打印机

在窗体上面显示,在把窗体上面的内容送到打印机去打印 

[窗体].printform 第四章 语言基础 1.添加组件控件 种类: 1.内部控件(标准控件):左侧可用直接使用,不能够删除 拖动、双击、复制 按shift+方向键设置宽度高度 按shift+ctrl+单击可以选择多个控件、画范围也可以选择多个 按ctrl+方向键可设置移动方向 对齐:选中多个对象——>鼠标放上面工具栏空白处——>鼠标单击右键——>窗体编辑器——>弹出编辑器点开下拉列表选择对齐方式 2.ActiveX控件 工程——>部件——>控件——>添加自己需要的 3.可插入对象:在代码中创建或引入一个已存在的对象实例 工程——>部件——>可插入对象——>添加自己需要的 2.属性

很多属性可以直接在对象图形化界面里面直接设置 

里面有很多属性:大家需要熟悉 Name:名称 Font:字体 fontname = "宋体" “黑体” “幼圆” fontsize=16:字体大小 fontbold=true:加粗 fontitalic=true:斜体 fontstrikethru=true:删除线 fontunderline=true:下划线 fonttransparent=true:透明字体 Caption:标题 Height:高 Width:宽 顶端:Top 左边:Left Backcolor:颜色 Picture:图像 BackStyle:是否透明 BorderStyle:窗体边框 0无边框;1有边框 Fixed Single:固定单边框(想要修改大小要设置属性 maxbutton minbutton为true) Sizeble:可调节边框 Fixed Dialog:固定对话框 Fixed Toolwindows:工具窗口,不能改变尺寸 Sizeble Toolwindows:工具窗口,能改变尺寸 Visible:可见否 Enable :可用否 AutoSize:自动适应文本框大小 WordWrap:自动换行(要设置显示的范围) passwordchar:*加密显示 sellength:显示选中的长度 Alignment:文本对齐 0:Left左对齐 1:Right右对齐 2:Center文本居中 对齐 MultiLine:多行显示 ControlBox:控制框 Icon:图标 MousePointer:鼠标指针 Moveable:可移动 StartUpPosition:窗口启动位置 0——手工 1——所有者中心 2——屏幕中心 WindowState:窗口状态 0——正常状态 1——最小化窗口 2——最大化窗口 AutoRedraw:自动重画(如果要打印东西,一定要勾选上) 换行 print print vbcrlf setfocus设置焦点 getfocus活得焦点 lostfocus失去焦点 time:时间 date:日期 3.添加事件

双击对象或组件可以弹出代码输入窗口:左侧显示的是添加的组件;右侧是方法(点击就会自动构建)

第一步:组件双击/右侧工程打开代码窗口 第二步:对象名(窗体/组件).属性 操作那个就设置那个! 4.颜色 第一种:调色板 第二种:常用颜色​&H蓝色+绿色+红色& 黑色:&H0& 白色:&H00FFFFFF& 第三种:对象浏览器里面有封装好的颜色可以直接调用:vbRed vbblue vbgreen 5.数据类型                                                                                         基本数据类型类  型关键字类型符前缀长  度取  值  范  围字节型Byte无byt1个字节0~255逻辑型Boolean无bln2个字节

True        -1

False       0

整型Integer%int2个字节

-32768~32767

public kk%

=public kk as Integer

长整型Long&lng4个字节-2147483648~2147483647单精度 浮点型Single!sng4个字节绝对值在1.401298*10-45~3.402823× 1038之间对象型object无obj4个字节任何对象引用双精度 浮点型Double#dbl8个字节绝对值在4.94065645841247×10-324~ 1.79769313486232×10-308之间货币型Currency@cur8个字节-922337203685477.5808~ 922337203685477.5807日期型Date无dtm8个字节

100年1月1日~9999年12月31日

  Dim dt As Date   dt = #9/1/2023 12:12:12 PM#   Print dt

字符串型String$str2个字节

可存储字符串的长度取决于变量类型

dim a as string                a=liuxinlei        print a        liuxinlei

dim b as string * 5           b=liuxinlei        print b        liuxi

变体型Variant无vnt可变

dim vt as variant

vt = 123

vt = "liuxilei"

vt = #9/1/2023 12:12:12 PM#

Byte 字节型 a,b,c,男,女 Boolean 逻辑型 是true 否false Integer 整型 1,2,100,1000 Long 长整型 一百亿 Single 单精度 1.1 1.22 1.333 Double 双精度 1.1111111111111111 Currency 货币型 了解 object 对象型 万物皆可对象 工具箱 form Date 日期型 年月日时分秒 String 字符串型 print "" 一连串信息 Variant 变体型 万能的类型 1.基本数据类型 数值型 整数 整型 % integer:占用2个字节 -32768到32767 长整型 & long :占用4个字节 -2147483648到2147483647 浮点数(符号+指数+尾数) 单精度 ! E :以4个字节(32位)存储,可精确到小数点后7位 双精度 # D :以8个字节(64位)存储,可精确到小数点后15/16位 字符串型 $ 变长 定长 货币型 @ currency 存储空间8个字节 日期时间:书写时用“#”括起来 变体 variant存储所以数据类型:如果一个变量没有声明类型,那么默认就是变体类型 字符变体:存储空间为原长度加22个字节 数值变体:存储空间为16个字节 2.自定义数据类型:工程——>添加模块——>打开 private/public Type 数据类型名 数据元素名 as 类型 .... End Type 举例 type stu stname as string *10 num as integer age as integer addr as string *20 end type 最前面加上:option explicit(变量首先声明才可以使用) 使用 dim 取名 as 数据类型名 取名.数据元素名 = 赋值 3.枚举数据类型 public enum Day { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY } Day day = Day.SUNDAY; 6.常量和变量 6.1 常量 常量:值不会发生改变的量是对应的一块内存地址,不允许给常量进行赋值 表示:多个表达式之间用逗号“,”分开 Const 常量名 = 表达式 类型划分 系统内部常量:应用程序和空间来提供的 视图——>对象浏览器 自定义常量 文字常量 字符串常量:可以是双引号或回车以外的任意ASC11字符 数值常量:整型、长整型、货币型、浮点数 符号常量:用定义的符号来代替数值或字符串 范围划分 局部常量:函数范围之内 模块级常量:整个窗体(在模块开始的最前面声明) 公用常量:所有的窗体,所有的函数都可以使用 窗体——>添加——>添加模块

举例 

const pi as double = 3.1415926 me.command1.caption = pi 公用常量 public const bool as boolean = false 6.2 变量 变量:程序运行过程中会发生改变的量,内存分配的一块命名空间 变量声明:工具——>选项——>勾选要求变量声明 就会自动加上”option explicit“ 命令规则 只能由字母、数字和下划线组成 长度不能超过255个字符 第一个字符必须是英文字符 不区分大小写 不能使用保留字 表示(多个逗号分隔):Declare 变量名 as 类型 Declare 自动变量Dim:使用了之后会恢复默认值 静态变量Static:在不退出的情况下,会保留原来的值,局部 Public:共有的 Private:私有的 Redim:重新定义数组的大小 变量的作用域(作用范围) 名称 作用域 声明位置 声明语句 局部变量(过程级变量): 过程 过程中 Dim/Static 普通局部变量:开始到结束就会终止 Dim a As Integer a = a + 1 Print a 静态局部变量:整个程序运行期间,可以叠加(不停叠加) static a As Integer a = a + 1 Print a 模块变量(模块级变量): 窗体/标准模块 模块的声明部分 Dim/Private 工程——>添加模块——>打开 窗体最上面加上:option explicit 全局变量(全场变量/公用变量) :整个应用程序 标准模块的声明部分 Public/Global 工程——>添加模块——>打开 窗体最上面加上:option explicit 模块 窗体模块 用户界面窗体 具体代码:通用代码+窗体代码+窗体中控件代码 标准模块:不属于具体的窗体或控件,存放一些公共的代码 使用dim private定义 类模块:即包含代码又包含数据 多个模块可以声明以下 比如有module1 和module2,并且同时有变量a 如果想使用module1中的a,必须声明,不然会报错 Module1.a = 666

举例

局部 Private Sub Form_Load() Dim i As Integer i = 100 End Sub Private Sub Command1_Click() Print i End Sub 窗体模块 Private j As Integer Private Sub Form_Load() Dim i As Integer j = 100 End Sub Private Sub Command1_Click() Print j End Sub 全局 Option Explicit Public k As Integer Private Sub Form_Load() k = 100 End Sub Private Sub Command1_Click() Print k End Sub 7.内部函数

ASCII码

C语言——ASCII 码表及分类

编码 UniCode大字符编码:1个英文和一个汉字均占用2个字节,2个字节为一个字符 ANSI编码:1个英文占用1个字节,而一个汉字占用2个字节 ASCII码转换 Asc(s):返回字符串首字母的ASCII码值 Chr(n):返回N对应的字符

函数声明

工具——>选项——>勾选要求变量声明——>确定——>退出软件再进入

内部函数

Vb常用内部函数

类型 数学函数 sin(x) cos(x) tan(x) cot(x) atn(x)反正切 abs(x)返回一个绝对值 sgn(x)符号判断判断正负 sqr(x)开平方根 exp(x)指数 isnumeric(x)检测变量是否为数字或数字字符串 转换函数 取整函数:视图——>立即窗口(可以直接输入函数和指令:多个用冒号":"分隔) Int(x):返回不大于自变量X的最大整数 (小于等于_向下取整) cint(x):四舍五入 ccur(x):把x的值转换为货币类型值 cdbl(x):双精度 csng(x):单精度 clng(x):长整型 cvar(x):变体 Fix(x):返回值为自变量X的整数部分 (向下取整) hex(x):十进制转十六进制 oct(x):十进制转换为八进制 Asc("x"):把字符转换为ascll码 chr(x):把数字转换成字符 str(x):把值转换成字符串 字符串函数 转换字符串格式:StrConv Dim a As String a = StrConv("123", 1) Print a 求字符串长度:Len(s) Dim a As String a = "wenxuan" Print (Len(a)) 查看占用字节:LenB Dim n As Integer n = LenB("Hello world") Print n 删除空白字符串 删除左侧:LTrim $(s) Dim a As String a = " wenxuan" Print (Len(LTrim(a))) 删除右侧:RTrim $(s) 删除两边:Trim $(s) 字符串截图函数 左侧N个字符Left(s,n) Dim a As String a = "123456789" Print Left(a, 5) 右侧N个字符Right(s,n) 中间N个字符Mid(s,开始位置,n个) String 生成由N个同一字符组成的字符串 print string(10,"*") Space 生成由N个空格组成的字符串 print space(5) 大小写转换 小转大:UCase(s) Dim a As String a = "aBCDef" Print UCase(a) 大转小:Lcase(s) 查找匹配字符串:返回首个字符的位置,是区分大小写的 在s1中查找s2:InStr(开始查找的位置可以不写,s1,s2,[类型]) 类型 为0:区分大小写 为1:不区分大小写 为2:基于数据库中的信息进行比较 查找成功,返回第一个字符所在的位置 查找失败,返回0 Dim a As String a = "aBCDef" Print InStr(a, "BC") 插入字符串语句 mid(字符串,位置,[插入字符个数可以省略]) = "(插入的内容)" 插入的地方要留好位置,不然会被替换 Dim a As String a = "aBCDef " Mid(a, 7) = "(GH)" Print a 时间/日期函数 now() day(now()) weekday("2023-9-1") month(x) year(x) hour(now) Minute(Now) second(x) Print Now() Print Year(Now) 随机函数 rnd() 随机种子randomize Randomize Print Rnd * 100 + 1 shell函数执行操作系统的命令行命令 Dim RetVal RetVal = Shell("calc.exe", 1) Dim val val =shell("c\program files\vb6.exe",1) 一般格式 函数名 ([参数1,参数2,参数3]) 8.运算符  算术运算符 运  算运 算 符表达式示例幂^A ^ 2取负-- A乘法*A * B浮点除法/A / B整数除法\A \ B取模/取余ModA Mod B加法+A + B减法-A - B Print 3 ^ 3 Print -3 Print 3 Print 3 * 4 Print 12.3 / 3 Print 12.3 \ 3 Print 15 Mod 4 Print 1 + 3 Print 3 - 1 比较运算符(关系运算符) 返回true和false运算符测试关系表达式例子=相等

A=B

Print 3 = 5 Print 3 = 3

或> 1 'false true Print 5 > 2 And 3 < 1 'true false Print 5 > 7 And 3 < 1 'fasle fasle Print 5 > 2 And 3 < 7 'true true Print '一个都为true就为true Print 1 = 3 Or 3 > 1 'false true Print 5 > 2 Or 3 < 1 'true false Print 5 > 7 Or 3 < 1 'false false Print 5 > 2 Or 3 < 7 'true true Print '两个都一样就为false Print 1 = 3 Xor 3 > 1 'false true Print 5 > 2 Xor 3 < 1 'true false Print 5 > 7 Xor 3 < 1 'false false Print 5 > 2 Xor 3 < 7 'true true Print '两个都一样就为true Print 1 = 3 Eqv 3 > 1 'false true Print 5 > 2 Eqv 3 < 1 'true false Print 5 > 7 Eqv 3 < 1 'false false Print 5 > 2 Eqv 3 < 7 'true true Print '第一个为true,第二个为false就为false Print 1 = 3 Imp 3 > 1 'false true Print 5 > 2 Imp 3 < 1 'true false Print 5 > 7 Imp 3 < 1 'false false Print 5 > 2 Imp 3 < 7 'true true End Sub 字符串运算符                                                                                               连接两个字符串+print "100" + 100                200&print "ABC" & 100                ABC100 位运算符(了解) &与两个位都为1时,结果才为1|或两个位都为0时,结果才为0^异或两个位相同为0,相异为1~取反0变1,1变0右移各二进位全部右移若干位,对无符号数,高位补0,有符号数,各编译器处理方法不一样,有的补符号位(算术右移),有的补0(逻辑右移) A = 60 而 B = 13 A = 0011 1100 B = 0000 1101 ----------------- A&B = 0000 1100 A|B = 0011 1101 A^B = 0011 0001 ~A = 1100 0011 A > 2 结果为:15 , 也就是:0000 1111 运算符优先级

                                                                                        算术运算符的优先级

                                                函数运算——>算术运算——>关系/比较运算——>逻辑/布尔运算——>位运算运算符意  义sqr........函数运算( )括号++、-- 等一元运算符^幂(乘方)* , /乘,浮点数除\整除Mod取余+ , -加,减 >、=、3 规则 1.乘除必须写 2.没有大括号,只有小括号 3.最好一条语句一行 第五章 程序控制结构 1.流程图(了解)                                                                                                          流程图 图形符号名  称含  义起止框表示一个算法的开始和结束输入、输出框表示数据的输入和输出操作。框中给出输入或输出的数据内容处理框表示数据的处理操作。框中给出所进行的处理判断框

表示判断操作,具有两个出口。框中给出判断条件,

若条件成立,则在出口处标注“是”或“Y”

否则,则标注“否”或“N”

特定过程表示一个特定的过程,例如函数流程线表示程序的处理流向,用来连接各个图形符号 ​​​​​​

2.选择结构if select if...then if...then语句 if then [语句组] end if 举例 Dim i As Integer i = 80 If i > 60 Then Print ("你是老年人") End If if...then...else if...then...else语句 if then [语句组1] else [语句组2] end if 举例 Dim j As Integer j = 20 If j >= 65 Then Print ("你可以退休了") Else Print ("你不能退休还要继续工作!") End If 例子:猜数字游戏 Dim a As Variant a = InputBox("请输入一个数:") If a = Text1.Text Then MsgBox ("恭喜你,猜对了!") Else MsgBox ("抱歉,猜错了!") End If 例子:切换颜色 Private Sub Command1_Click() Dim color, i As Variant If Form1.BackColor = vbRed Then Form1.BackColor = vbGreen ElseIf Form1.BackColor = vbGreen Then Form1.BackColor = vbBlue ElseIf Form1.BackColor = vbBlue Then Form1.BackColor = vbRed End If End Sub Private Sub Form_Load() Form1.BackColor = vbRed End Sub if...then...elseif...then  if...then...elseif语句 if then [语句组1] elseif then [语句组2] elseif then [语句组3] ... else [语句组] end if 举例 Dim k As Single k = 98 If 90 = 90 Then Print ("男性的退休金为 9000元") ElseIf work >= 80 Then Print ("男性的退休金为 8000元") ElseIf work >= 70 Then Print ("男性的退休金为 7000元") Else Print ("男性的退休金为 6000元") End If Else Print ("女性的退休年龄为60岁") Print ("女性的退休年龄为65岁") If work > 100 Then Print ("女性的退休金为 11000元") ElseIf work >= 90 Then Print ("女性的退休金为 9100元") ElseIf work >= 80 Then Print ("女性的退休金为 8100元") ElseIf work >= 70 Then Print ("女性的退休金为 7100元") Else Print ("女性的退休金为 6100元") End If End If End Sub

例子2 

一元二次方程 ax*x+bx+c=0 val()字符变成数字 a=0 不是二次方程 b^2-4ac=0 有两个相等的实根 b^2-4ac>0 有两个不相等的实根 b^2-4ac 0 Then Print "有两个不相等的实根" Print e; ";"; f ElseIf d < 0 Then q = Sqr(Abs(d)) / (2 * a) Print "有两个复数根" Print p & " + "; q & "i" Print p & " - "; q & "i" End If End If End Sub

 例子3

’嵌套:长辈年龄不同 给不同年龄段小辈 发不同的红包 Private Sub Form_Load() dim sex as string sex = "女" '性别 dim age as integer age = 35 '长辈年龄 dim man as integer man = 18 '小辈年龄 If sex = "男" Then Print ("你是男生!") If age >= 80 Then Print ("你是祖祖辈的") If man >= 25 Then Print ("你的红包为520元") ElseIf man >= 20 Then Print ("你的红包为1200元") ElseIf man >= 15 Then Print ("你的红包为1700元") ElseIf man >= 10 Then Print ("你的红包为2200元") ElseIf man >= 5 Then Print ("你的红包为2700元") Else Print ("你的红包为3200元") End If ElseIf age >= 50 Then Print ("你是爷爷辈的") If man >= 25 Then Print ("你的红包为510元") ElseIf man >= 20 Then Print ("你的红包为1100元") ElseIf man >= 15 Then Print ("你的红包为1600元") ElseIf man >= 10 Then Print ("你的红包为2100元") ElseIf man >= 5 Then Print ("你的红包为2600元") Else Print ("你的红包为3100元") End If ElseIf age >= 30 Then Print ("你是叔叔辈的") If man >= 25 Then Print ("你的红包为500元") ElseIf man >= 20 Then Print ("你的红包为1000元") ElseIf man >= 15 Then Print ("你的红包为1500元") ElseIf man >= 10 Then Print ("你的红包为2000元") ElseIf man >= 5 Then Print ("你的红包为2500元") Else Print ("你的红包为3000元") End If Else Print ("你是小辈,可以不发红包") End If Else Print ("你是女生!") If age >= 80 Then Print ("你是祖祖辈的") If man >= 25 Then Print ("你的红包为520元") ElseIf man >= 20 Then Print ("你的红包为1200元") ElseIf man >= 15 Then Print ("你的红包为1700元") ElseIf man >= 10 Then Print ("你的红包为2200元") ElseIf man >= 5 Then Print ("你的红包为2700元") Else Print ("你的红包为3200元") End If ElseIf age >= 50 Then Print ("你是奶奶辈的") If man >= 25 Then Print ("你的红包为510元") ElseIf man >= 20 Then Print ("你的红包为1100元") ElseIf man >= 15 Then Print ("你的红包为1600元") ElseIf man >= 10 Then Print ("你的红包为2100元") ElseIf man >= 5 Then Print ("你的红包为2600元") Else Print ("你的红包为3100元") End If ElseIf age >= 30 Then Print ("你是阿姨辈的") If man >= 25 Then Print ("你的红包为500元") ElseIf man >= 20 Then Print ("你的红包为1000元") ElseIf man >= 15 Then Print ("你的红包为1500元") ElseIf man >= 10 Then Print ("你的红包为2000元") ElseIf man >= 5 Then Print ("你的红包为2500元") Else Print ("你的红包为3000元") End If Else Print ("你是小辈,可以不发红包") End If End If End Sub

例子4

Private Sub Form_Load() '根据不同的年份,不同的省份,确定不同的医保缴纳费用 yearnum = "2021" '今年的年份 adr = "重庆市" '你的省份 If adr = "四川省" Then Print ("你是四川人") If yearnum = "2023" Then Print ("你2023年应该缴纳国家医保费用为:380元") ElseIf yearnum = "2022" Then Print ("你2022年应该缴纳国家医保费用为:350元") ElseIf yearnum = "2021" Then Print ("你2023年应该缴纳国家医保费用为:320元") Else Print ("你应该缴纳国家医保费用为:200元") End If ElseIf adr = "北京" Then Print ("你是北京人") If yearnum = "2023" Then Print ("你2023年应该缴纳国家医保费用为:480元") ElseIf yearnum = "2022" Then Print ("你2022年应该缴纳国家医保费用为:450元") ElseIf yearnum = "2021" Then Print ("你2023年应该缴纳国家医保费用为:420元") Else Print ("你应该缴纳国家医保费用为:300元") End If ElseIf adr = "重庆市" Then Print ("你是重庆人") If yearnum = "2023" Then Print ("你2023年应该缴纳国家医保费用为:580元") ElseIf yearnum = "2022" Then Print ("你2022年应该缴纳国家医保费用为:550元") ElseIf yearnum = "2021" Then Print ("你2023年应该缴纳国家医保费用为:520元") Else Print ("你应该缴纳国家医保费用为:500元") End If Else Print ("请询问本地医保局!") End If End Sub

例子5

Private Sub Form_Load() num = "N" '车牌号 jingdian = "竹海" '景点 If num = "M" Then Print ("你是老家资阳的") If jingdian = "半月山大佛" Then Print ("这个景点在雁江区") ElseIf jingdian = "安岳石刻" Then Print ("这个景点在安岳县") Else Print ("请询问当地人") End If ElseIf num = "P" Then Print ("你是老家南充的") If jingdian = "西华师范大学" Then Print ("这个景点在顺庆区") ElseIf jingdian = "南充职业技术学院" Then Print ("这个景点在高坪区") Else Print ("请询问当地人") End If ElseIf num = "A" Then Print ("你是老家成都的") If jingdian = "青城山" Then Print ("这个景点在都江堰") ElseIf jingdian = "西岭雪山" Then Print ("这个景点在大邑县") ElseIf jingdian = "四川大学" Then Print ("这个景点在武侯区") Else Print ("请询问当地人") End If ElseIf num = "N" Then Print ("你是老家宜宾的") If jingdian = "石海" Then Print ("这个景点在兴文县") ElseIf jingdian = "竹海" Then Print ("这个景点在翠屏区") Else Print ("请询问当地人") End If Else Print ("你是其他地方的人!") End If End Sub

例子6

Private Sub Form_Load() sex = "女" play = "妲己" If sex = "男" Then Print ("你是男生") If play = "鲁班" Then Print ("你玩的是射手") ElseIf play = "李白" Then Print ("你玩的打野") ElseIf play = "亚瑟" Then Print ("你玩的战士") Else Print ("请查看英雄说明!") End If Else Print ("你是女生") If play = "妲己" Then Print ("你玩的是中路") ElseIf play = "花木兰" Then Print ("你玩的打野") ElseIf play = "虞姬" Then Print ("你玩的是射手") Else Print ("请查看英雄说明!") End If End If End Sub select case  select case语句 select case [case] case is鼠标右键——>菜单编辑器 分类 下拉式菜单:自己添加 自定义快捷键:标题后面输入 (&字母)——必须打开一级菜单才会生效 举例:双击编辑代码 文件file 日期(&D) - line 时间(&T) 编辑 Option Explicit Private Sub date_Click() Me.Caption = Now End Sub Private Sub time_Click() Me.Caption = Hour(Now) End Sub 菜单项的增减 加载:load 删除:unload 索引:mnucounter 举例 编辑bianji 增加add 删除del - appname 索引0 Option Explicit Dim mnucounter As Integer '下标定义 Private Sub add_Click() Dim temp As String temp = InputBox("请输入程序的名字", "增加") mnucounter = mnucounter + 1 '名称:appname 索引:0 Load appname(mnucounter) '增加 appname(mnucounter).Caption = temp appname(mnucounter).Visible = True End Sub Private Sub del_Click() Dim delnum As Integer delnum = InputBox("请选择需要删除的第几条信息", "删除") If delnum > mnucounter Or delnum < 1 Then MsgBox ("你输出的需要有误!") End If Unload appname(delnum) '删除 mnucounter = mnucounter - 1 End Sub 弹出式菜单 举例 标题:字体格式化popFormat 加粗:popBold 下划线:popItalic '按钮鼠标按下 Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 2 Then '1左键 2右键 PopupMenu popFormat '主菜单项名称 弹出样式 End If End Sub Private Sub popBold_Click() Me.Command1.FontBold = True End Sub Private Sub popItalic_Click() Me.Command1.FontUnderline = True End Sub 2.对话框 对话框:显示和获取信息与用户进行交流 分类 1.预定义对话框 输入框:inpubox 信息/消息框:msgbox 2.自定义对话框 其实就是放按钮,页面之间的跳转 3.通用对话框CommonDialog:是一种控件 加通用对话框 工具栏——>工程——>部件——>勾选Microsoft Common Dialog Control 6.0——>确定 操作(需要用到通用对话框) me.CommonDialog1.Action = num num=0:无任何动作 num=1:打开文件对话框,可以选择一个文件 num=2:另存文件 num=3:颜色对话框 num=4:字体(需要安装字体) num=5:打印 num=6:帮助 举例 Private Sub Form_Load() Me.CommonDialog1.Action = 1 End Sub 4.文件对话框(需要用到通用对话框) 操作 me.CommonDialog1.ShowOpen 打开文件 me.CommonDialog1.ShowSave 保存文件 me.CommonDialog1.ShowHelp 帮助 me.CommonDialog1.FileName 文件名包含的路径 me.CommonDialog1.DialogTitle="对话框标题" me.CommonDialog1.InitDir="c:\" 设置路径,默认是程序所在的路径 me.CommonDialog1.Filter="JPG文件|*.jpg|BMP文件|*.bmp|GIF文件|*.gif|所有文件|*.*" me.CommonDialog1.FilterIndex=默认是1 设置默认索引号 属性 flags标志(看后面的图表分类说明) cancelerror:在点击取消时候,是否显示报错 DialogTiltle:对话框的标题 FileName:设置或返回要打开或保存的文件的路径及文件名 FileTitle:设置对话框中所选择的文件名(不包括路径) Filter:设置对话框中显示的文件类型 DefaultEXT:默认的文件类型,即扩展名 FilterIndex:指定默认的过滤器 InitDir:指定对话框中显示的起始目录。如果没有设置InitDir属性,则显示当前目录 举例 Private Sub Form_Load() Me.CommonDialog1.Filter = "JPG文件|*.jpg|BMP文件|*.bmp|GIF文件|*.gif|所有文件|*.*" Me.CommonDialog1.FilterIndex = 2 '默认显示 Me.CommonDialog1.DialogTitle = "打开文件" Me.CommonDialog1.ShowOpen Me.Image1.Picture = LoadPicture(Me.CommonDialog1.FileName) 'stretch自动拉伸true Image1工具 End Sub 5.其他对话框(需要用到通用对话框) 5.1 颜色对话框 me.CommonDialog1.ShowColor颜色 me.CommonDialog1.flags = num num=1:首次打开选中我们之前选中的颜色 num=2:打开一个完整的对话框,还会显示一个用户自定义的颜色窗口可以添加颜色 num=4:禁用”规定自定义颜色“按钮 num=8:添加显示一个帮助按钮 举例 Private Sub Form_Load() Me.CommonDialog1.ShowColor Me.BackColor = Me.CommonDialog1.Color End Sub 5.2 字体对话框 me.CommonDialog1.ShowFont 字体 查看是否显示字体:控制面板——>外观和个性化——>字体——>进入查看 me.CommonDialog1.flags = num num=1:只显示屏幕的字体 num=2:列出与电脑相连打印机的字体 num=3:列出打印机和屏幕的字体 num=4:添加显示一个帮助按钮 me.text1.fontname=me.CommonDialog1.filename me.text1.fontsize=me.CommonDialog1.fontize me.text1.fontbold=me.CommonDialog1.fontbold me.text1.fontitalic=me.CommonDialog1.fontitalic me.text1.fontunderline=me.CommonDialog1.fontunderline me.text1.fontstrikethru=me.CommonDialog1.fontstrikethru 举例 Private Sub Form_Load() Me.CommonDialog1.Flags = 3 Me.CommonDialog1.ShowFont Me.Text1.FontName = Me.CommonDialog1.FontName Me.Text1.FontSize = Me.CommonDialog1.FontSize Me.Text1.FontBold = Me.CommonDialog1.FontBold Me.Text1.FontItalic = Me.CommonDialog1.FontItalic Me.Text1.FontUnderline = Me.CommonDialog1.FontUnderline Me.Text1.FontStrikethru = Me.CommonDialog1.FontStrikethru End Sub 5.3 打印对话框 me.CommonDialog1.copies=5 打印份数 me.CommonDialog1.flags=num num=1:返回所有页 num=2:页选项状态 me.CommonDialog1.frompage = 1 me.CommonDialog1.topage = 10 me.CommonDialog1.ShowPrinter 打印 PrintDialogButtonText:显示“打印”、“取消”和“帮助”按钮的文本 PrintDialogPageCount:在“页码范围”框中用户输入页码的数目 PrintDialogPrinterSettings:用户选择的打印机设置 PrintDialogPrinterName:用户选择的打印机名称 PrintDialogCollate:用户指定的分页顺序 PrintDialogPrintToFile:用户是否选择将打印输出保存到文件 举例 Private Sub Form_Load() Me.CommonDialog1.Copies = 5 Me.CommonDialog1.Flags = 1 Me.CommonDialog1.ShowPrinter End Sub                                                                                           文件对话框flag                                                                                                                               

Flags属性可以使用3种形式:即符号常量、十六进制整数和十进制整数

Flags属性允许设置多个值,这可以通过以下两种方法实现:     ① 如果使用符号常量,则将各值之间用“Or”运算符连接     ② 如果使用数值,则将需要设置的属性值相加

符号常量

十六进制整数 

十进制整数

作用

cdlOFNReadOnly

&H1&

1

在对话框中显示“只读检查”复选框

cdlOFNOverwritePrompt

&H2&

2

如果用已经存在的文件名保存文件

消息框,则询问用户是否覆盖该文件

cdlOFNHideReadOnly

&H4&

4

隐藏只读方式复选框

cdlOFNShowHelp

&H10&

16

对话框增加显示一个帮助按钮

cdlOFNNoValidate

&H100&

256

允许在文件名中有非法字符

cdlOFNAllowMultiselect

&H200&

512

允许用户选择多个文件,所选择的文件名存放在FileName中,各文件名之间用空格隔开

cdlOFNPathMustExist

&H800&

2048

只允许输入有效的路径,若输入非法路径,则显示警告

cdlOFNCreatePrompt

&H2000&

8192

如文件不存在,询问是否要建立新文件

第九章 多重窗体与MDI窗体程序设计 1.多窗口  建立多重窗体应用程序 设置默认启动窗体:工程——>工程属性——>启动对象 load 窗体名称 unload 窗体名称 窗体名称.Show Show 1:模态 当前窗体打开不关闭,不能操作其他的窗体 默认是非模态 举例 Form1.Show 0 Form2.Show 1 窗体名称.Hide 窗体名称.Visible = false/true 多重窗体程序的执行和保存 和单窗体一样 2.工程结构 模块操作 举例 模块 Option Explicit Sub showmessage(str As String) MsgBox str & "good" End Sub 窗体 Option Explicit Private Sub Command1_Click() 'Command1 showmessage (Me.Text1.Text) 'Text1 End Sub 举例 模块 Option Explicit Public i As Integer 窗体 Option Explicit Private Sub Command1_Click() 'Command1 i = 1000 Me.Caption = i End Sub 标准/全局模块 特点 里面的东西可以在任意窗口调用 多个模块里面的内容不能重复的去写 添加标准模块:工程——>鼠标右键——>添加——>添加模块——>打开 全局变量声明放在标准模块的首部 内容 sub showmessage(str as string) '子过程 msgbox str & "你好!" end sub '添加Text1 Private Sub Form_Load() showmessage (Me.Text1.Text) '调用 End Sub 窗体模块 声明 其他窗体不能使用form1 dim a as integer 其他窗体可以使用form2 Private Sub Form_Load() Form1.a = 100 Print Form1.a End Sub 通用过程(自定义) Option Explicit Private Sub Command1_Click() 'Command1 Form1.msg End Sub Public Sub msg() MsgBox Me.Caption End Sub 事件过程 click ... sub main过程(相当于主函数 必须定义在模块中) 特点 是在标准模块中建立的,不能放在任何的窗体里面 一个工程中只能有一个sub main过程 想看效果 设置启动对象:工程——>工程属性——>启动对象——>sub main 语法 sub main() MsgBox ("你好啊,我sub main过程") MsgBox ("我相当于主函数 从上往下执行") form1.show end sub 第十章 文件操作 1.文件的打开open与关闭close 文件的种类 数据的性质来分 程序文件:可以存放由计算机执行的程序(原文件 可执行文件exe frm vbp vbg...) 数据文件:用来存放普通的数据的(程序来存取管理) 存取数据的方式和机构来分 顺序文件:一个接一个的存放,只知道第一个记录存放的位置 优点:占用空间少,容易使用 确定:维护困难 随机/直接存取文件:可以根据需要访问文件中的任何记录 优点:数据存取较为灵活方便,速度较快,容易修改 确定:占用空间较大 编码方式来分 ASCLL码二/文本文件:可以用自处理软件来建立和修改,必须按照纯文本格式来保存 二进制文件:二进制的方式保存,占用空间较小 文件的打开(建立) Open 文件名称 [For 模式][Access 访问方式存取类型][lock 锁定模式] as [#]文件号 [len=记录长度] For 模式 输出:For output 内存输出到外设(没有会自动创建) 输入:For input 外设输出到内存 追加:For append 指定顺序输出方式,文件指针被定位在文件的末位,写入就追加在后面 随机:For Random 默认的,用Get和Put语句对该文件中任何一个记录位置上的信息进行读写操作 二进制方式:For Binary,用Get和Put语句对该文件中任何一个字节位置上的信息进行读写操作 Access 访问方式 只读:Access read 只写:Access write 读写:Access read write lock 锁定模式 lock shared:其他进程可对此文件进行任何读写操作 lock read:不允许其他进程读此文件 lock write:不允许其他进程写此文件 lock Read Write:不允许其他进程对此文件进行任何操作 #文件号(编号) 是一个1~511的整数,用于表示这个文件 打开文件的文件号与一个具体的文件相关联,其他输入输出语句或函数将通过文件号来操作文件 len=记录长度 是一个整型数,长度不能超过32767 对顺序文件来说,它是指内存缓冲区分配的字符个数 对随机文件来说,它是文件中单个记录的长度 对于二进制文件来说,将忽略Len子句 文件的关闭 Close [#文件号1] [#文件号2]…… 举例 Option Explicit Private Sub Command1_Click() Open "c:\liu.txt" For Append Access Read Write Lock Read As #1 '运行,鼠标去打开文件,显示另—个程序正在使用此文件,进程无法访问 End Sub Private Sub Command2_Click() Close #1 End Sub 2.文件操作语句和函数 文件指针:在文件中定位到特定的字节位置 语句 Seek #文件号,位置 Seek #1, "g:\a.txt" 函数 Seek(文件号) 其他语句和函数 FreeFile函数:自动产生没有使用过的文件号 举例 Option Explicit Private Sub Command1_Click() 'a.txt b.txt c.txt Open "g:\a.txt" For Input As #1 Open "g:\b.txt" For Input As #2 Dim filenum As Integer filenum = FreeFile Open "g:\c.txt" For Input As filenum MsgBox filenum Close End Sub Loc函数:返回打开的文件内的当前可读/写位置 Loc(文件号) Print Loc(1) Lof函数:返回给已打开文件分配的字节数 Lof(文件号) Print LOF(1) EOF函数:是否是结束结尾状态 EOF(文件号) 返回:false true 3.顺序文件(写print write、读input) 写操作:内存中的数据,写到屏幕上 print #文件号,表达式表 也可以用分号隔开,是紧凑格式 举例 Option Explicit Private Sub Command1_Click() Dim sname, stel, sadd As String Open "f:\tel.dat" For Output As #1 sname = InputBox("请输入姓名", "输入数据") stel = InputBox("请输入电话号码", "输入数据") sadd = InputBox("请输入地址", "输入数据") Print #1, sname, stel, sadd Close #1 End Sub write #文件号,表达式表 数据在磁盘中以紧凑的格式存放 字符串用双引号引起来的 举例 模块【后面都会用到】 Option Explicit Type stu stname As String * 10 num As Integer age As Integer addr As String * 20 End Type 窗体 Option Explicit Private Sub Command1_Click() Dim n, i As Integer Static stud() As stu Open "c:\stulist" For Output As #1 n = InputBox("请输入用户的数量:") ReDim stud(n) As stu For i = 1 To n stud(i).stname = InputBox("姓名") stud(i).num = InputBox("学号") stud(i).age = InputBox("年龄") stud(i).addr = InputBox("地址") Write #1, stud(i).stname, stud(i).num, stud(i).age, stud(i).addr Next i Close #1 End Sub 读操作 input #文件号,表达式表 举例 Option Explicit Private Sub Command1_Click() Dim n, i As Integer Static stud() As stu Open "c:\stulist" For Input As #1 n = InputBox("请输入用户的数量:") ReDim stud(n) As stu Print "name"; Tab(10); "num"; Tab(20); "age"; Tab(30); "address" Print For i = 1 To n Input #1, stud(i).stname, stud(i).num, stud(i).age, stud(i).addr Print stud(i).stname; Tab(10); stud(i).num; Tab(20); stud(i).age; Tab(30); stud(i).addr Next i Close #1 End Sub line input #文件号,字符串变量 举例 Option Explicit Private Sub Command1_Click() 'multline属性=true多行显示 Dim whole, aspect As String Open "f:\1.txt" For Input As #1 Do While Not EOF(1) Line Input #1, aspect whole = whole & aspect & Chr(13) & Chr(10) Loop Me.Text1.Text = whole Close #1 End Sub 4.随机文件(写put、读get) 随机文件的特点 1.随机文件的记录长度是定长 2.每个记录又划分为若干个字段,每个字段长度等于相应变量的长度 3.各变量/数据项按一定的格式来植入相应的字段 4.打开随机文件,既可以读又可以写 5.以记录为单位进行操作的 6.记录:记录的类型、要处理文件的记录 随机文件的打开与读写操作 写操作 1.定义数据类型 dim recordval as recordtype private type recordtype emname as string*10 unit as string*20 salary as integer end type 2.打开随机文件 open "文件名称" for random as #文件号 len=记录长度 举例 open "c:\1.dat" for random as #1 len=len(recordval) 3.写入随机文件 put #文件号,[记录号],变量 举例 recordval.emname=inputbox("姓名") recordval.unit=inputbox("公司") recordval.salary =inputbox("工资") put #1,,recordval 4.关闭文件 close #文件号 举例 close #1 举例 模块 Option Explicit Type recordtype emname As String * 10 unit As String * 20 salary As Integer End Type 窗体 Option Explicit Private Sub Command1_Click() Dim recordval As recordtype Open "c:\1.dat" For Random As #1 Len = Len(recordval) recordval.emname = InputBox("姓名") recordval.unit = InputBox("公司") recordval.salary = InputBox("工资") Put #1, , recordval Close #1 End Sub 读取随机文件 get #文件号,[记录号],变量 举例 Option Explicit Private Sub Command1_Click() Dim recordval As recordtype Open "c:\1.dat" For Random As #1 Len = Len(recordval) Get #1, , recordval Print recordval.emname Print recordval.unit Print recordval.salary Close #1 End Sub 5.文件系统控件 驱动器列表框DriveListBox Private Sub Form_Load() Me.Caption = Me.Drive1.Drive End Sub 目录列表框DirListBox Me.Dir1.Path = Me.Drive1.Drive 文件列表框FileListBox me.file1.path = me.dir1.path me.file1.pattern = "*.exe" 显示相应类型的文件 6.文件基本操作 删除文件(kill语句) 举例 kill "c:\1.txt" 举例 Private Sub Form_Load() '加通用对话框:工程——部件——microsoft common dialog control 6.0 Me.commondialog1.showopen If MsgBox("确定要删除" & Me.commondialog1.FileName & "文件吗", vbYesNo, "删除文件") = vbYes Then Kill Me.commondialog1.FileName End If End Sub 拷贝文件(filecopy语句) filecopy 源文件名,目标文件名 举例 filecopy "c:\1.txt","d:\2.txt" 文件(目录)重命名(name语句) name 源文件名 as 新文件名 举例 name "c:\1.txt" as "c:\3.txt" name "c:\1.txt" as "d:\3.txt" 第十一章 VB数据库编程技术

MySQL数据库(安装配置 语句语法使用 项目中操作MySQL)

习题:数据库操作习题二——35道题、数据库操作习题三(50道题-含答案)

1.相关概念  1.数据库的概念:数据库是一系列组织有序的信息集合 2.数据库的组成 表:由记录、字段组成(学号 性别 年龄 性别) ------------------------------------------------------ 字段/属性1(学号)主键 字段/属性2(姓名) 记录/元组1 1 张三 记录/元组2 2 李四 ------------------------------------------------------ 学号 外键 课程 成绩 1 VB 100 2 数据库 100 ------------------------------------------------------ 关系 一对一:班级 班长 一对多:班级 学生 多对多:学生 课程 3.数据的组织 主键:用于唯一标识数据库表中每一条记录的字段,它必须具有唯一性和不可更改性 举例:id是主键 外键:用于建立数据库表之间关系的字段,它关联了当前表中的数据和其他表中的数据 举例:假设有两个表,一个是student表,另一个是class表 一个班级有多个学生,一个学生属于一个班级 为了表达这种一对多的关系,需要在student表中加入一列class_id,它的值与class表的某条记录相对应 主表class表、从表student表 4.类型 关系数据库:以关系模型为基础来组织和存储数据的数据库 数据表由行和列组成,每一行代表一个实体的数据记录,每一列代表一个实体的属性 非关系型数据库(NoSQL):是指不基于关系模型的数据库 是为了解决大规模数据集合多重数据种类带来的挑战,特别是大数据应用难题 5.范式:是数据库设计中的一种规范,用于减少数据冗余、提高数据独立性和完整性 特点 不存在重复的元组(记录) 非主键值都与主键有关 非主键值相互独立 路程=速度*时间 六种范式 第一范式(1NF) 第二范式(2NF) 第三范式(3NF) 巴斯-科德范式(BCNF) 第四范式(4NF) 第五范式(5NF,又称完美范式 2.数据控件 属性 DatabaseName:数据源名称的位置 Connect:指明连接数据库的类型(Access) RecordSource:指定表 RecordSetType:记录集 Table:表示数据库中的一张表,可添加、修改等 Dynaset:动态集,一张或多张表,也可修改 Snapshot:快照,可对多表,但不可修改 方法 Move移动 MoveFirst:使记录集中的第一条记录成为当前记录 MoveLast:使记录集中的最后一条记录成为当前记录 data1.recordset.movelast data1.caption="当前的记录一共有:" & data1.recordset.recordcount MoveNext:下移一条记录,即使下一条记录成为当前记录 MovePrevious:上移一条记录,即使上一条记录成为当前记录 Refresh刷新 Datal. Refresh AddNew、Delete、Update、Edit 添加记录 with data1.recordset .addnew .fields("表名sno")=”1“ .fields("表名cno")=”VB“ .fields("表名score")=70 .update end with 删除记录 data1.recordset.delete Seek:数据表对象. Seek comparison, 关键字1, 关键字2… 查找满足条件的记录,使用Seek方法之前必须打开表的索引,要查找的内容必须为索引字段 当找到与其匹配的第1条记录时,记录指针就定位到该记录,并使之成为当前记录 Find FindFirst〈条件字符串〉:在记录集中查找满足条件的第一条记录 Datal. Recordset. FindFirst "出版社代码='0002'" FindLast 〈条件字符串〉:在记录集中查找满足条件的最后一条记录 FindNext〈条件字符串〉:从当前记录开始查找满足条件的下一条记录 FindPrevious〈条件字符串〉:从当前记录开始查找满足条件的上一条记录 关联控件 DataSource数据源 DataField字段 3.建立数据库并操作数据库

实战项目:VB结合数据库实现-登录注册增删改查刷新_vb数据库增删改查

建立数据库 外接程序——>可视化数据管理器——>文件——>新建——>Microsoft Access——>Version 7.0MDB ——>取名——>保存——>鼠标右键——>新建表——>生成表 对记录进行增删改查 选中表——>打开——>操作——>更新 连接数据库 data控件——>属性设置 ——>connect——>access ——>databasename需要连接数据库的名称——>选择我们自己建立的数据库 ——>recordsettype——>1-dynaset ——>recordsource记录源——>选择一张表 控件与数据库关联起来 属性 数据——>datasource——>数据控件data1 属性 数据——>datafield——>选择一张表 4.全代码操作(感兴趣了解)

accessdatabaseengine下载64位 

'先要生成表users:username password sex;再设计布局窗口 '工程—>引用—>micrpspft activex data object6.1 '声明并创建连接对象 Dim conn As New ADODB.Connection '数据集 声明连接对象类型 Dim rs As ADODB.Recordset Dim sql$ Private Sub Command1_Click() show If conn.State = 0 Then conn.ConnectionString = "Provider=Microsoft.jet.OLEDB.4.0;Data Source=G:\test\test.mdb;Persist Security Info=False" '连接数据库的驱动字符串 conn.Open '打开数据库 End If 'mdb数据库 'a.udl选择连接类型 没有就安装accessdatabaseengine下载64位 '选择:提供程序—>microsoft office 12.0;连接输入源的mdb;确定;复制地址到上面去 'ACE改为jet 12.0改为4.0 mdb 'accdb数据库 和版本有关,最好用专业版的 'ACE 12.0 accdb 'microsoft access database '其他操作和上面一样连接的时候要关闭一下database文件 'sql插入语句 sql = "insert into [users]([username],[password],[sex]) values('& text1.text &','text2.text','combol.text')" 'sql = "insert into [users]([username],[password],[sex]) values('a','666','男')" 'sql查询语句 sql = "select *from [users]" '创建数据集对象的连接 Set rs = New ADODB.Recordset '录入信息 rs.Open sql, conn, adOpenKeyset, adLockBatchOptimistic Dim i% Do While Not rs.EOF '输出一行记录 i = 0 Do While i a+b AND NOT (y < b) 7.在VB中,下面那个数据类型是整型_____? A.Boolean B.Long C.Integer D.Variant 8.在VB中,下面那个数据类型是变体型_____? A.Boolean B.Long C.Integer D.Variant 9.在VB中,不等于使用的符号是_____? A.!= B.≠ C.>< D.或>< 10.数组的下标是从_____开始的? A.None B.Null C.0 D.1 11.在要使 Form1窗体的标题栏显示"欢迎使用 VB",以下_____语句是正确的。 A.=“欢迎使用 VB” B.='欢迎使用 VB' C.=欢迎使用 VB D.="欢迎使用 VB" 12.若要使命令按钮不可以操作,要对_____属性进行设置。 A.EnabIed B.Visible C.Backcolor D.Caption 13.若是在窗体上已经创办了一个文本框对象Text1,可以经过_____事件获得输入键值的 ASCII码。 A.Change B.LostFocus C.KeyPress D.GotFocus 14.下面_____是合法的变量名。 A.X_yz B.123ab C.integer D.X-Y 15.以下关系表达式中,其值为False的是_____。 A."AbC">"ABC" B. " 女 ">" 男 " C."BASIC"=UCase("basic) D."123"


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3