第1章 开发环境 1
1.1 Visual Basic的安装 2
0001 安装合适的Visual Basic 版本 2
0002 如何解决Visual Basic安装后保存工程时出现中文乱码 2
0003 如何让Visual Basic开发环境支持鼠标滚轮 2
1.2 开发环境的设置 3
0004 如何为Visual Basic项目设置工程属性 3
0005 在开发环境中如何设置窗体的网格 3
0006 如何定制有效的工具栏 4
0007 如何定制编程环境 4
0008 如何合理布局窗体 5
0009 如何锁定窗体上的控件 6
0010 如何调整与对齐控件 6
0011 如何利用代码对齐控件 6
0012 为何弹出 “add this project to SourceSafe?” 7
0013 如何在工程中查找文本 7
1.3 控件注册和对象引用 8
0014 如何添加ActiveX控件 8
0015 如何引用对象 8
0016 如何添加第三方控件 9
0017 如何加载和使用API阅览器 9
0018 定制我的模板库 10
1.4 其他方面的技巧 11
0019 如何规范代码缩进格式 11
0020 如何使用上下文相关帮助 11
0021 如何使用最近的工程文件 12
0022 Visual Basic内置的内码转换功能 13
0023 复制背景技巧 14
0024 如何快速清除属性值 14
第2章 语言基础 15
2.1 函数与语句 16
0025 Visual Basic大小写问题 16
0026 如何判断字符串是否为空Null 16
0027 End语句的使用技巧 16
0028 End、Exit语句的使用技巧 17
0029 怎样关闭一个正在运行的程序 17
0030 在限定次数内执行语句 17
0031 如何防止无限循环 18
2.2 变量、常量和数组 18
0032 怎样合理使用变量 18
0033 变量的作用范围 19
0034 如何声明同样类型的多个变量 20
0035 如何声明模块和窗体级的变量 20
0036 合理使用数据类型 20
0037 如何处理溢出 20
0038 Visual Basic字节数组和字符串的相互转换 20
2.3 循环与跳转语句 21
0039 使用Do循环重复执行一条或者多条语句 21
0040 使用While…Wend创建循环 21
0041 使用Do Until…Loop重复执行一条或者多条语句 21
0042 有效使用循环语句和嵌套循环语句 22
0043 如何在For…Next语句中使变量递减 22
0044 使用GoTo跳转语句 22
0045 如何退出循环 22
0046 建立一个至少执行一次的Do循环 23
2.4 运算符与条件语句 23
0047 如何强行改变运算符的运算顺序 23
0048 如何正确使用&和+ 23
0049 如何正确使用Or、Xor、And、Eqv、Imp运算符 24
0050 怎样在If…Then语句的条件处理中使用括号 25
0051 怎样使用IIf函数简化代码 25
0052 如何有效使用Case Else语句 26
0053 谨慎使用If…If…Else 26
0054 有效使用条件语句和嵌套条件语句 26
2.5 对象与数据结构 27
0055 利用Object变量传递参数 27
0056 合理使用数组简化编程 27
0057 Visual Basic中数据集合对象的应用 27
0058 怎样在Visual Basic编程中运用数据结构 28
0059 有效使用Me关键字 28
2.6 其他应用 29
0060 为代码添加注释 29
0061 如何注释或取消注释一段代码 29
0062 在Timer 控件中使用计数变量 30
0063 在声明中注释变量 30
0064 如何利用注释清除程序语句 30
0065 引号字符的赋值 31
0066 如何实现文本框OVERWRITE功能 31
第1章 开发环境 1
1.1 Visual Basic的安装 2
0001 安装合适的Visual Basic 版本 2
0002 如何解决Visual Basic安装后保存工程时出现中文乱码 2
0003 如何让Visual Basic开发环境支持鼠标滚轮 2
1.2 开发环境的设置 3
0004 如何为Visual Basic项目设置工程属性 3
0005 在开发环境中如何设置窗体的网格 3
0006 如何定制有效的工具栏 4
0007 如何定制编程环境 4
0008 如何合理布局窗体 5
0009 如何锁定窗体上的控件 6
0010 如何调整与对齐控件 6
0011 如何利用代码对齐控件 6
0012 为何弹出 “add this project to SourceSafe?” 7
0013 如何在工程中查找文本 7
1.3 控件注册和对象引用 8
0014 如何添加ActiveX控件 8
0015 如何引用对象 8
0016 如何添加第三方控件 9
0017 如何加载和使用API阅览器 9
0018 定制我的模板库 10
1.4 其他方面的技巧 11
0019 如何规范代码缩进格式 11
0020 如何使用上下文相关帮助 11
0021 如何使用最近的工程文件 12
0022 Visual Basic内置的内码转换功能 13
0023 复制背景技巧 14
0024 如何快速清除属性值 14
第2章 语言基础 15
2.1 函数与语句 16
0025 Visual Basic大小写问题 16
0026 如何判断字符串是否为空Null 16
0027 End语句的使用技巧 16
0028 End、Exit语句的使用技巧 17
0029 怎样关闭一个正在运行的程序 17
0030 在限定次数内执行语句 17
0031 如何防止无限循环 18
2.2 变量、常量和数组 18
0032 怎样合理使用变量 18
0033 变量的作用范围 19
0034 如何声明同样类型的多个变量 20
0035 如何声明模块和窗体级的变量 20
0036 合理使用数据类型 20
0037 如何处理溢出 20
0038 Visual Basic字节数组和字符串的相互转换 20
2.3 循环与跳转语句 21
0039 使用Do循环重复执行一条或者多条语句 21
0040 使用While…Wend创建循环 21
0041 使用Do Until…Loop重复执行一条或者多条语句 21
0042 有效使用循环语句和嵌套循环语句 22
0043 如何在For…Next语句中使变量递减 22
0044 使用GoTo跳转语句 22
0045 如何退出循环 22
0046 建立一个至少执行一次的Do循环 23
2.4 运算符与条件语句 23
0047 如何强行改变运算符的运算顺序 23
0048 如何正确使用&和+ 23
0049 如何正确使用Or、Xor、And、Eqv、Imp运算符 24
0050 怎样在If…Then语句的条件处理中使用括号 25
0051 怎样使用IIf函数简化代码 25
0052 如何有效使用Case Else语句 26
0053 谨慎使用If…If…Else 26
0054 有效使用条件语句和嵌套条件语句 26
2.5 对象与数据结构 27
0055 利用Object变量传递参数 27
0056 合理使用数组简化编程 27
0057 Visual Basic中数据集合对象的应用 27
0058 怎样在Visual Basic编程中运用数据结构 28
0059 有效使用Me关键字 28
2.6 其他应用 29
0060 为代码添加注释 29
0061 如何注释或取消注释一段代码 29
0062 在Timer 控件中使用计数变量 30
0063 在声明中注释变量 30
0064 如何利用注释清除程序语句 30
0065 引号字符的赋值 31
0066 如何实现文本框OVERWRITE功能 31
第3章 程序算法 33
3.1 计算类算法 34
0067 如何求最大公约数 34
0068 如何求最小公倍数 34
0069 如何求1000以内的完数 34
0070 如何求素数 35
0071 怎样实现哥德巴赫猜想 35
0072 如何实现分治算法 36
0073 如何计算阶乘 36
0074 怎样实现穷举法 36
3.2 判断类算法 37
0075 如何判断闰年 37
0076 如何实现猜数字游戏算法 37
0077 怎样判断身份证是否合法 38
0078 怎样判断城市电话区号是否正确 39
0079 如何实现五子棋对战算法 39
3.3 转换及排序类算法 41
0080 怎样将汉字转换首拼音码 41
0081 如何实现字典算法 42
0082 如何实现8421码转换 42
0083 如何实现字母大小写转换 43
0084 如何实现选择排序法 43
0085 如何实现冒泡排序法 43
0086 如何实现交换排序法 44
第4章 数组与指针 45
4.1 数组的定义与初始化 46
0087 如何定义静态数组 46
0088 如何定义动态数组 46
0089 巧用常量定义数组 47
0090 初始化一维数组 47
0091 初始化二维数组 47
0092 利用Option Base语句设置数组边界 48
4.2 数组的引用与算法 48
0093 如何获取数组上限 48
0094 如何获取数组下限 49
0095 如何访问数组元素 49
0096 如何计算数组的元素个数 49
0097 如何在数组中插入数组元素 49
0098 如何删除数组元素 50
0099 怎样在数组中进行查找 50
0100 怎样利用数组实现矩阵转换 51
0101 对数组进行二分查找 51
4.3 数组的应用 52
0102 如何利用数组统计文字段落数 52
0103 如何利用数组随机抽取幸运观众 53
0104 如何利用二维数组向MSFlexGrid表格添加数据 54
0105 如何利用数组设置MSFlexGrid的表头和列宽 54
4.4 控件数组 54
0106 动态添加或删除控件 54
0107 利用控件数组设置控件状态 55
0108 向窗体中动态添加控件 55
0109 如何声明窗体数组 56
0110 如何声明控件变量数组 56
4.5 指针地址获取 57
0111 如何获取对象实例私有域的地址 57
0112 如何获取字符串中第一个字符的地址 57
0113 如何获取变量的地址 57
0114 获取数组的地址 58
0115 获取自定义过程地址 58
4.6 地址调用 58
0116 传递对象指针 58
0117 传递字符串首字母指针 59
0118 传递变量指针 59
0119 根据自定义过程地址调用该函数 60
0120 ByVal和ByRef的区别 60
0121 利用地址偏移访问内存 60
4.7 指针的综合应用 61
0122 利用安全数组借用内存的方法 61
0123 利用指针实现数组的插入 62
0124 利用指针实现数组的拆分 62
0125 利用指针过滤数组重复数据 63
0126 将Byte类型数组中的元素传递给字符串 63
0127 利用地址偏移实现循环左移 64
0128 利用指针合并数组 64
0129 利用数组作为自定义过程的参数 65
0130 利用ObjPtr函数快速查找集合中的对象 65
0131 利用ObjPtr函数判断对象变量是否指向同一对象 65
第5章 函数和过程 67
5.1 格式转换与进制转换 68
0132 如何将数字格式化为指定位数 68
0133 如何将金额格式化为包含6位小数的格式 68
0134 利用Format函数转换字母大小写 68
0135 如何将数字转换为带有分节符的数字 68
0136 如何把带分节符的数字型字符串转换为数字 69
5.2 数值运算 69
0137 如何将二进制转换为十进制 69
0138 如何将二进制转换为八进制 70
0139 如何将二进制转换为十六进制 70
0140 如何取小数的整数位 71
0141 如何对小数进行四舍五入 71
0142 如何计算数值的绝对值 71
5.3 对象函数 72
0143 如何创建并返回一个对ActiveX对象的引用 72
0144 利用CallByName函数调用对象方法 72
0145 利用CallByName函数设置对象属性 72
0146 利用CallByName函数获取对象属性 73
5.4 数组函数 73
0147 如何获得对象类型名 73
0148 如何添加数组对象 73
0149 初始化数组 74
0150 如何判断变量是否为数组 74
0151 利用数组设置DataGrid的列宽与列头 74
0152 如何按照指定条件对数组中的字符串进行查询 74
0153 计算一维数组的数组元素 75
5.5 自定义过程 75
0154 过程值传递参数 75
0155 过程引用传递参数 76
0156 如何计算加权平均值 76
0157 如何检查参数是否成功传递给用户自定义过程 76
5.6 其他应用 77
0158 如何获取变量类型 77
0159 如何利用错误号获取错误名称 78
0160 如何将汉字转换为Unicode字符代码 78
0161 如何获取在已打开文件中的当前读写位置 78
0162 如何获取系统环境信息 79
0163 如何判断变量是否被初始化 79
0164 如何获取文件的创建或修改日期 80
0165 如何自定义错误号 81
0166 如何获取当前打开窗口的数量 81
0167 巧用IIF函数 82
5.7 综合应用 82
0168 如何随机获取姓名 82
0169 如何随机抽取字符串 82
0170 如何利用Rnd函数制作随机抽奖程序 83
0171 如何防止连续出现多个空格 83
0172 如何给程序添加运行参数 84
0173 Command函数的妙用 84
第6章 字符及字符串处理技术 85
6.1 ASCII码与编码转换 86
0174 如何根据字母获得ASCII码 86
0175 如何根据ASCII码获得字母 86
0176 已知某一汉字的区位码,如何获得该汉字 86
0177 获得汉字的区位码 86
0178 如何根据区位码判断汉字 87
6.2 字符串转换 87
0179 如何将数字转换为字符串 87
0180 如何将字符串转换为数字 87
0181 如何将日期转换为字符串 87
0182 如何将字符串全部大写 88
0183 如何将字符串全部小写 88
0184 如何将字符串首字母大写 88
0185 本地码与Unicode的转换 88
6.3 字符串查找与判断比较 89
0186 如何在字符串中查找指定字符 89
0187 如何在字符串中提取部分字符 89
0188 如何实现在ListBox中查找字符串 90
0189 利用IsNumeric函数判断是否为数字 90
0190 如何统计某个字符在一个字符串变量中出现的次数 90
0191 怎样判断字符串中某一字符是否大写 91
0192 怎样判断字符串是否为日期或时间 91
0193 怎样获得字符串中大写字符的个数 91
0194 巧截字符串中的数字 92
0195 如何获得一个字符串中数字的个数 92
0196 计算字符串中子字符串出现的次数 92
0197 统计某个字符在一个字符串变量中出现的次数 93
0198 在进行字符串比较时忽略大小写 93
0199 如何获取文字中英文字母的个数 94
0200 如何判断指定个数的字符串是不是数字 94
0201 如何判断某一字符是否在字符串中 94
6.4 字符串处理 95
0202 如何在字符串中用一个子串替换另一个子串 95
0203 将N个字符添加到字符串变量中 95
0204 如何将一行字符串分成一列字符 95
0205 如何根据标点符号分行 96
0206 如何在字符串中添加多个空格 96
0207 如何处理字符串越界 97
0208 如何将字符串颠倒 97
0209 如何对字符串进行组合或分解 97
0210 如何清除字符串中指定的字符 98
0211 复制字符串中指定的字符 98
0212 如何快速查找或替换文本中的字符 98
0213 如何去掉字符串中所有的空格 99
0214 处理数值型转换为字符型过程中遗留下的空格 99
0215 如何去除字符串尾部的空格 99
0216 如何在字符串中使用双引号 100
0217 为字符串加回车 100
0218 优化字符串添加操作 100
6.5 字符串位置与长度 101
0219 如何获得一个字符串的长度 101
0220 如何获得中英文混合字符串的字节长度 101
0221 如何只获得字符串中某个数字在数字中的位置 101
0222 获得某个字符在一个字符串中最后出现的位置 102
0223 获得字符串中所指定的后几位字符 102
6.6 综合应用 102
0224 从字符串中分离文件路径、文件名及其扩展名 102
0225 如何进行文本加密与解密 103
0226 如何对字符串进行加、减、乘、除计算 103
0227 用Visual Basic分离出文本框的单词 104
0228 统计字符个数 104
0229 如何进行字节数组和字符串的相互转换 105
第7章 日期和时间 107
7.1 日期时间格式转换 108
0230 将日期格式化为指定格式 108
0231 如何将短日期格式格式化为长日期格式 108
0232 如何将AM/PM格式时间转换为普通格式时间 108
0233 如何将长日期格式格式化为短日期格式 109
0234 如何将年、月、日转换为日期 109
0235 将带英文的日期转换为短日期 109
0236 如何将时、分、秒转换为时间 110
0237 如何将日期转换为Hijri日期 110
0238 如何显示AM/PM时间 111
0239 如何获取星期名称 111
0240 如何获取月份名称 111
7.2 日期和时间的设置与获取 112
0241 获得系统的当前日期 112
0242 获得系统的当前时间 112
0243 同时获得系统的当前日期和时间 112
0244 如何确定程序的运行时间 113
0245 如何设置系统的日期 113
0246 如何设置系统的时间 113
0247 如何获得Windows系统已经运行的时间 114
0248 如何创建日历 114
7.3 日期和时间的计算 114
0249 如何使用DateAdd函数向日期型数据加值 114
0250 如何做成一个有时间限制的测试版 115
0251 如何实现倒计时功能 115
0252 如何判断月份最后一天 116
0253 通过闰月判断闰年 116
0254 获得当前季节 116
0255 如何判断经历多少个工作日 117
0256 如何实现系统分段报时 117
7.4 延时与定时 118
0257 如何实现毫秒精度的延时 118
0258 如何使用API函数Sleep延迟时间 118
0259 自定义延时函数 118
0260 利用timeGetTime函数更精准地计算时间差 119
0261 如何自制闹钟 119
第8章 数据处理技术 121
8.1 非法输入控制 122
0262 文本框不许为空提示 122
0263 招聘信息录入时限制用户最小年龄和最大年龄 122
0264 如何实现输入密码只允许输入8位或超过8位 123
0265 只允许输入指定格式的图片 124
0266 数据保存前检查数据是否正确 124
0267 限制用户输入密码符合密码要求 125
8.2 数据保存与计算 126
0268 如何实现均价产品数据 126
0269 使用SQL语句保存数据 126
0270 使用赋值方式保存数据 127
0271 根据生日自动计算员工的年龄 128
0272 对计算结果四舍五入 128
0273 在表格中对列信息进行汇总 129
0274 在表格中对行信息进行汇总 129
8.3 数据输入输出格式化 130
0275 格式化输入数据为货币格式 130
0276 格式化输入数据为日期格式 130
0277 格式化MSHFlexGrid表格中的数据 130
0278 格式化DataGrid表格中的数据 131
0279 只允许用户输入月份和日期 131
8.4 辅助与自动化 131
0280 在DataGrid表格中进行数据计算 131
0281 根据用户输入需求自动调整输入法 132
0282 将输入的数据自动加入输入列表 132
0283 为程序设计找零功能 133
0284 设计带记忆的数据录入窗口 133
0285 根据用户输入的是英语还是汉语决定显示内容 134
0286 数据辅助录入 135
0287 根据表格中数据的长度自动调整表格宽 136
0288 根据数据大小自动调整表格高度 137
0289 自动生成产品编号 137
0290 设置光标到文本框的末尾 138
8.5 数据综合应用 138
0291 禁止用户输入数据 138
0292 使用MsgBox函数输出用户信息 139
0293 在手机号码中随机抽取幸运观众 139
0294 批量生成房屋编号 140
0295 商品金额的大小写转换 140
第9章 窗体与界面设计 143
9.1 窗体基本应用技巧 144
0296 如何设计应用程序的界面 144
0297 利用Show方法显示被调用窗体 145
0298 用Load语句将窗体加载到内存中 145
0299 如何实现窗体的卸载与隐藏 146
0300 如何控制窗体加载时所在的位置 146
0301 怎样创建一个无ICON的窗体 146
0302 清除窗体或控件中的图片 146
0303 如何在关闭窗体时提示用户是否关闭 147
0304 利用Tag属性存储用户名 147
9.2 标准菜单应用技巧 147
0305 如何给菜单加分割线 147
0306 如何为菜单指定访问键 148
0307 如何为菜单增加快捷键 148
0308 如何制作复选菜单 149
0309 如何给菜单增加事件处理代码 149
0310 如何修饰菜单 150
0311 如何创建菜单数组 150
9.3 高级菜单应用技巧 151
0312 如何实现带历史信息的菜单 151
0313 如何创建级联菜单 153
0314 如何创建弹出式菜单 154
0315 如何在控件上创建弹出式菜单 154
0316 任务栏托盘上的弹出式菜单 156
0317 分栏式菜单 156
0318 根据表中数据动态生成菜单 157
0319 通过菜单控制操作权限 158
0320 改变菜单的颜色 159
0321 带图标的菜单项 159
9.4 工具栏、状态栏应用技巧 160
0322 利用ToolBar控件创建简单的工具栏 160
0323 如何制作带图标的工具栏 161
0324 如何为工具栏添加事件 163
0325 利用CoolBar控件制作工具栏 163
0326 IE式工具栏 165
0327 如何设计带下拉菜单的工具栏 166
0328 自己制作工具栏 167
0329 根据表中的数据动态生成工具栏 167
0330 如何制作状态栏 168
0331 如何编写在状态栏中显示信息的代码 169
0332 自己制作状态栏 170
0333 用Panel对象的Text属性显示数据库的属性 170
9.5 窗体位置控制 171
0334 如何保存用户对窗体大小和位置所做的更改 171
0335 控件随窗体大小而改变 172
0336 如何使程序窗体总在最前面 173
0337 控制其他程序成为自己程序的子窗体 173
0338 如何控制窗体最小化和最大化 174
0339 使用API函数获取窗体的分辨率 175
9.6 个性化主窗体 175
0340 如何实现整个窗体铺满图片 175
0341 制作个性图形窗体 176
0342 Visual Basic与Flash联合打造魅力主界面 177
0343 用鼠标切分的主窗体 179
0344 Outlook式主界面 180
0345 用TreeView控件制作主界面 181
0346 随机更换主界面 182
0347 类似于Windows XP的界面 183
9.7 窗体标题控制 185
0348 闪烁的窗体标题栏 185
0349 拖动没有标题栏的窗体 185
0350 让窗体的标题栏不响应鼠标双击事件 186
0351 获取标题栏中的内容 187
9.8 改变窗体形状 187
0352 如何创建字形窗体 187
0353 如何创建椭圆形窗体 188
0354 透明窗体 189
0355 钻石形窗体 189
0356 百叶窗式窗体 190
9.9 实用功能窗体设计 191
0357 如何设计多文档界面 191
0358 MDI窗体中巧用ActiveForm属性 192
0359 浏览器式的窗体 192
0360 欢迎窗体 194
0361 调用API函数设计“关于”窗体 194
9.10 特色界面设计 195
0362 可改变背景颜色的TreeView控件 195
0363 用Visual Basic制作即时动态按钮 196
0364 动态图形按钮菜单 198
0365 使用Visual Basic设计凹状按钮 198
0366 使用Visual Basic设计浮动按钮组 199
0367 图形导航按钮 200
第10章 系统对象及其应用 203
10.1 App对象的应用 204
0368 利用App对象获取当前路径 204
0369 如何解决程序路径错误 204
0370 防止程序重复运行 204
0371 获得应用程序的版本信息 205
0372 设置应用程序的版本信息 205
0373 获得应用程序的标题和版本号 206
0374 获取应用程序的句柄和线程 206
10.2 Screen 对象的应用 206
0375 获得当前桌面的大小 206
0376 获得当前窗体的位置 207
0377 获得系统中可用的字体 207
0378 制作用户操作提示程序 208
0379 更改鼠标形状和指针 208
0380 实现文本数据自动复制、剪切和粘贴 209
10.3 Clipboard对象的应用 209
0381 实时监视剪贴板文本复制情况 209
0382 复制剪贴板图片到窗体 210
0383 将数据、图片复制到剪贴板 211
0384 实时监视剪贴板 212
0385 清除剪贴板中的内容信息 212
0386 使剪贴板粘贴失效 213
0387 将剪贴板内容保存到文件中 213
0388 实现类似于Word的剪贴板 214
0389 利用Clipboard实现拷屏 214
第11章 控件技术 217
11.1 文本框、标签和静态文本框控件应用技巧 218
0390 如何限定文本框中只能输入数字 218
0391 自动删除用户输入的数字字符 218
0392 锁定文本框内的文本 219
0393 选中文本框中的内容 219
0394 怎样让两个文本框中的内容同步 220
0395 设置文本框为密码显示 220
0396 实现文本框的滚动 220
0397 限制文本框的长度 220
0398 隐藏文本框的光标 221
0399 实现焦点在文本框间移动 221
0400 如何获取文本框中文本的行数 222
0401 如何实现文本框自动覆盖原内容的功能 223
0402 在文本框中按格式输入内容 223
0403 如何使用UpDown控件选择年、月、日 224
0404 如何限定文本框只允许输入日期型数据 225
0405 设置标签背景透明 225
0406 标签中的内容如何折行显示 225
0407 如何按设定值使标签自动换行 226
11.2 图形图像类控件应用 226
0408 如何为Picture控件设置图形或清除图形 226
0409 如何为Picture控件复制图形 226
0410 判断PictureBox控件是否设置了图形 227
0411 保存Picture控件中的图形 227
0412 获取Picture控件背景色的RGB值 227
0413 怎样为Picture控件设置网格 228
0414 用Picture控件实现马赛克效果 228
0415 为Picture控件设置滚动条 229
0416 利用模拟键盘拷屏 229
0417 使Picture Box控件实现自动适应图片大小 230
0418 利用Picture对象数组形成动画 230
0419 在Picture控件中使用鼠标移动图片 230
0420 根据鼠标位置自动移动图片 231
0421 在图片上放置文字 231
11.3 组合框、列表框控件应用 232
0422 如何禁止向组合框输入数据 232
0423 如何对列表框进行复选 233
0424 如何让列表框多列显示数据 233
0425 如何让列表框数据顺序排列 234
0426 向组合框或列表框控件添加数据 235
0427 删除组合框或列表框中的数据 235
0428 删除列表框中的复选数据 235
0429 防止将重复项目添加到组合框控件中 236
0430 如何给ListBox控件加水平滚动条 236
0431 在ListBox控件间实现数据交换 237
0432 如何实现ComboBox条目快速查询 238
0433 在列表框数据中随机抽取数据 239
0434 自动改变ComboBox下拉列表框的长度 239
0435 如何将一个ComboBox控件放到Toolbar控件上 240
0436 如何快速选中ListBox的全部条目 241
11.4 按钮、选择类控件应用 241
0437 如何为按钮动态加载图片 241
0438 利用按钮数组控件简化编程 242
0439 动态添加按钮和响应事件 243
0440 用按钮控件数组动态显示状态信息 243
0441 利用Option控件实现开关按钮效果 244
0442 如何实现两组Option控件互不关联 245
0443 启动时设置Option控件非选状态 245
0444 利用CheckBox控件实现开关按钮效果 245
0445 如何响应CheckBox控件的焦点移动 246
0446 利用CheckBox控件显示和设置操作员权限 246
0447 利用动态CheckBox控件数组显示信息 247
11.5 文件控件应用 248
0448 如何为磁盘、文件夹及文件列表框控件指定路径 248
0449 利用Pattern属性过滤文件 248
0450 ListIndex、ListCount和List属性应用技巧 249
0451 提取文件目录信息到TXT文件 250
0452 如何保持文件系统同步 250
0453 利用FileList控件实现文件多选 251
0454 如何解决文件选择时出错 251
11.6 框架类控件应用 252
0455 如何一次选中Frame上的多个控件 252
0456 如何动态添加控件到Frame 252
0457 如何解决Image控件数组预览图片不完整的问题 253
0458 怎样为TabStrip 控件增加选项卡 254
0459 利用TabStrip控件与Frame控件实现选项卡 255
0460 如何设置TabStrip对齐方式和宽度 256
0461 如何设置TabStrip样式外观 256
0462 如何设置TabStrip选项卡的方向位置 257
0463 如何实现SSTab控件单击触发问题 257
0464 如何限制用户切换SSTab 258
0465 如何设置SSTab选项卡方向 259
0466 如何为SSTab设置背景 259
0467 如何隐藏SSTab的选项卡 259
0468 如何动态向SSTab中添加控件 260
0469 如何获得SSTab选项卡中的所有控件 261
11.7 滚动条控件应用 261
0470 如何设置自动显示的滚动条 261
0471 使用鼠标移动滚动条 262
0472 如何使用鼠标滚轮移动滚动条 262
0473 如何使滚动变快或变慢 262
0474 如何实现窗体滚动 263
0475 如何为动态添加的图片增加滚动条 264
11.8 进度条控件应用 264
0476 如何为启动界面添加进度条 264
0477 如何在数据库处理时显示进度 265
0478 制作特效进度条 266
0479 向TreeView 控件填充数据时显示进度 266
0480 利用Slider 控件实现音量调整 267
11.9 CommonDialog控件应用 268
0481 显示“打开”对话框 268
0482 显示“另存为”对话框 268
0483 “打开”和“另存为”对话框中的过滤器文件类型 268
0484 设置默认路径 269
0485 如何显示“颜色”对话框 270
0486 显示“打印”或“打印选项”对话框 270
0487 RichTextBox与CommonDialog控件的结合使用 271
0488 从公共对话框控件中提取多个文件名称 271
11.10 RichTextBox控件应用 272
0489 如何使用RichTextBox控件打开和保存文件 272
0490 设置RichTextBox控件自动换行 273
0491 如何使用RichTextBox控件的Find方法 273
0492 如何在RichTextBox控件中实现复制粘贴 275
0493 删除RichTextBox控件中的部分文本 275
0494 使用RichTextBox 进行中英文文字查找并描红 275
0495 如何在RichTextBox控件中进行文本替换 276
0496 如何提取RichTextBox控件中的文本到数组 277
0497 如何对RichTextBox中的选定文本进行打印 277
0498 如何设置RichTextBox控件的页边距 277
0499 如何显示查找字符所在行号 278
0500 如何显示行号并高亮显示一整行数据 278
11.11 TreeView、ListView控件应用 278
0501 如何显示树状内容 278
0502 如何展开全部节点 279
0503 当TreeView失去焦点时,如何使选定项显示为选定状态 279
0504 获得所有父节点和子节点的内容 280
0505 如果父节点存在子节点,则不允许删除父节点 281
0506 使用TreeView控件实现多级商品信息浏览 281
0507 将ZML文档显示在TreeView中 282
0508 在TreeView控件上实现右键操作 283
0509 设置TreeView控件的背景色 284
0510 ListView 列标头相关技巧 284
0511 如何让ListView 显示复选框 285
0512 如何提取ListView 的列标题 285
0513 ListView“索引超出边界”怎么解决 285
0514 如何知道单击了ListView空白处 285
0515 怎样用代码实现ListView控件的行间隔颜色 286
0516 如何将图标加载到ListView控件中 287
0517 如何将两个ListView的内容横列互换 287
11.12 Flash控件 287
0518 如何在程序中使用Flash控件 287
0519 如何播放Flash动画 288
0520 如何设置透明的Flash控件 288
0521 让Flash动画响应鼠标单击事件 289
11.13 其他控件问题 289
0522 如何注册和使用控件 289
0523 创建控件数组 290
0524 如何一次绘制多个控件 290
0525 设置多种控件的共同属性 290
0526 如何新建和调用DLL 291
0527 获得拥有焦点控件的信息 291
0528 Visual Basic中控件大小随窗体大小的变化而变化 291
0529 动态改变控件的大小 292
0530 获得窗体中的控件名称列表 293
0531 在运行时向应用程序中添加控件 293
0532 利用Load和Unload动态添加、删除控件 294
第12章 键盘与鼠标 295
12.1 鼠标指针和键 296
0533 如何定义鼠标指针形状 296
0534 设置鼠标为指定的图标 297
0535 设置鼠标为ani格式的动画 297
0536 为无标题的窗体添加鼠标效果 297
0537 实现大十字光标的形式 298
0538 如何交换鼠标的左右键 299
0539 获得鼠标键数 299
12.2 鼠标动作 300
0540 移动鼠标 300
0541 鼠标的显示与隐藏 300
0542 如何获得窗体上鼠标的位置 300
0543 如何获得屏幕上鼠标的位置 301
0544 限制鼠标在某一区域工作 301
0545 拖动无标题栏的窗体移动 301
0546 利用鼠标绘图 302
0547 鼠标点不到的按钮 303
0548 记录鼠标行为 303
0549 获得和设置鼠标双击时间间隔 304
0550 鼠标跟随 304
0551 捕捉MouseEnter和MouseExit事件 305
12.3 键盘相关 305
0552 按Enter键移动焦点 305
0553 将Enter键变成Tab键 306
0554 判断Num Lock键和Caps Lock键是否锁定 306
0555 转换键值 306
0556 禁止使用窗体上的“关闭”按钮关闭窗体 307
0557 为自己的程序设计热键 307
0558 为窗体设置热键 307
0559 模拟Print Screen键按下 308
0560 禁止使用Alt+F4键来关闭窗体 308
0561 有效地使用Shift、Ctrl及Alt键 309
0562 有效地使用KeyPress事件 309
12.4 其他应用 309
0563 避免按Enter键产生“嘀”声 309
0564 在运行的窗体上拖动控件 309
0565 拒绝键盘输入和鼠标按下 310
0566 如何制作鼠标单击老鼠的游戏 310
0567 动态改变控件的大小 311
第13章 文件和文件管理 313
13.1 文件的读取和写入 314
0568 利用Put语句写入数据 314
0569 如何一次性写入文件 314
0570 一个字符一个字符地写入文件 315
0571 利用Write #语句写入文件 315
0572 从ini文件中每次读取一行信息 315
0573 利用Input函数从文件中一次读取一个字符 316
0574 从ini文件中一次性读取信息 316
0575 写入系统日志 317
13.2 文件及文件夹的创建和移动 318
0576 利用MkDir语句创建文件夹 318
0577 利用FSO对象创建文件夹 318
0578 利用FileCopy语句复制文件 319
0579 利用MoveFile函数移动文件 319
0580 利用API函数复制文件 320
0581 使用递归法删除文件夹 321
0582 更改文件名 321
0583 删除文件夹 322
0584 选择文件夹 322
13.3 文件属性的获得和设置 323
0585 获得文件的文件名 323
0586 获得文件的大小 324
0587 获取文件的创建时间 324
0588 获取文件的修改时间 326
0589 获取文件的最后访问时间 326
0590 利用SetAttr语句设置文件属性 326
0591 获取已经打开的文件的大小 327
0592 设置随机访问文件的读取位置 327
0593 获得文件的属性 328
0594 获得文件的扩展名 328
0595 利用CurDir函数返回当前的路径 329
13.4 其他应用 329
0596 用Visual Basic设计个性化文件夹 329
0597 利用文件控件制作文件浏览器 330
0598 将Word文档存成.txt格式的文件 331
0599 获取C盘下的所有文件 331
0600 使用文件的默认方式打开文件 331
0601 获得当前系统的Windows目录 332
0602 提取Windows的System路径 333
0603 获取应用程序所在的目录 333
0604 如何在Visual Basic中通过相对路径引用标准DLL 333
0605 在Visual Basic中调用CHM帮助文件的5种方法 334
第14章 磁盘管理 335
14.1 磁盘信息获取 336
0606 获得磁盘的剩余空间-1 336
0607 获得磁盘的剩余空间-2 336
0608 获取逻辑分区信息 336
0609 获取物理硬盘个数和逻辑分区个数 337
0610 获取物理硬盘信息 337
0611 获取磁盘信息 338
0612 获得磁盘的总空间 339
14.2 获取卷标信息 340
0613 获取计算机中所有的驱动器名称-1 340
0614 如何利用FSO获取驱动器的卷标 340
0615 如何获得网络驱动器名称 340
0616 获取分区卷标简单方法 341
0617 获取计算机中所有的驱动器名称-2 341
14.3 磁盘操作 342
0618 设置磁盘卷标 342
0619 格式化磁盘 342
0620 碎片整理磁盘 343
0621 从FAT32转换为NTFS 343
0622 如何隐藏磁盘分区 344
0623 如何显示被隐藏的磁盘分区 344
0624 如何更改分区号 344
14.4 磁盘监控与分析 345
0625 判断驱动器的类型-1 345
0626 判断驱动器的类型-2 345
0627 如何监视硬盘 346
0628 判断光驱是否有光盘 348
0629 判断是否插入存储器 348
0630 检测软驱是否有软盘 348
第15章 图形图像技术 349
15.1 绘制图形 350
0631 自定义容器的坐标系统 350
0632 绘制网格 350
0633 绘制立体三棱锥 351
0634 绘制抛物线 352
0635 利用Line控件设计分割线 353
15.2 图像的特效 353
0636 实现凸起的三维文字效果 353
0637 实现凹陷的三维文字效果 354
0638 实现阴影三维文字效果 355
0639 实现倾斜三维文字效果 355
0640 图片的雨滴效果 356
0641 上下型“百叶窗”特效 357
0642 左右型“百叶窗”特效 358
0643 利用图片实现电影胶片效果 359
0644 万花筒 359
15.3 翻转与缩放 360
0645 可任意旋转的文字 360
0646 可任意旋转的图像 362
0647 利用Image控件实现图像的放大和缩小 363
0648 利用PictureBox控件实现图像的放大和缩小 363
0649 如何实现图片翻转 363
0650 屏幕的翻转 364
15.4 图像颜色的转换 365
0651 如何实现定点取色 365
0652 如何获得PictureBox控件中的颜色 366
0653 利用Visual Basic实现屏幕变暗的效果 366
0654 如何实现图片颜色的反转 367
0655 图片的锐化 368
0656 图片的浮雕效果 368
15.5 图形图像算法 369
0657 沙丘图案的算法 369
0658 等电位面图的算法 370
0659 蜗牛线算法 371
0660 贝塞尔曲线算法 372
0661 尼哥米德蚌线算法 373
15.6 图片的管理 374
0662 如何保存图形文件 374
0663 Visual Basic制作图片浏览器 374
0664 具有缩略图功能的图片浏览器 375
0665 批量修改图片名称 377
0666 图片的剪切 377
15.7 其他应用 379
0667 如何调用Word中的艺术字 379
0668 PictureBox显示动态运行进度 380
0669 使Windows开始屏幕保护 381
0670 利用Visual Basic实现更换墙纸-1 381
0671 利用Visual Basic实现更换墙纸-2 382
0672 屏幕保护程序(从左到右显示图片) 382
0673 图片转换为字符串 383
第16章 动画与多媒体 385
16.1 文字特效 386
0674 设置文字的闪烁 386
0675 彩虹文字 386
0676 文字旋转特效 387
0677 文字横向拉宽 388
0678 屏幕中的滚动字幕 388
0679 设计滚动字幕程序 389
16.2 动画相关 390
0680 利用Image制作小动画 390
0681 利用一行代码实现图片的滚动 390
0682 如何播放GIF文件 390
0683 如何播放Flash动画 391
0684 用Visual Basic编写Flash动画播放器 391
0685 用Visual Basic编写Flash文件浏览器 392
0686 播放透明的Flash动画 393
16.3 音频相关 393
0687 如何播放WAV声音文件 393
0688 如何播放MIDI声音文件 394
0689 如何利用PC喇叭播放声音 394
0690 如何用MediaPlayer控件做一个MP3播放器 395
0691 如何用MMControl控件播放M3U文件 396
16.4 视频相关 397
0692 播放AVI文件 397
0693 播放VCD 398
0694 播放MPG 399
16.5 各种清屏效果 400
0695 从左右向中间清屏 400
0696 从中间向左右清屏 400
0697 从上下向中间清屏 401
0698 从中间向上下清屏 401
0699 菱形清屏 401
16.6 多媒体应用控制 402
0700 MCI命令打开和关闭光驱 402
0701 怎样获得文件的短路径名 402
0702 如何控制音量的大小 403
第17章 API函数 405
17.1 在Visual Basic中使用API 406
0703 如何打开“API浏览器” 406
0704 如何向“API浏览器”中加载API 407
0705 如何使用“API浏览器”中没有的API函数 408
0706 利用API函数替代Shell函数 408
0707 利用API函数调用Word 408
0708 怎样防止API函数使用时产生错误 409
0709 比较lstrlen函数和Len函数的不同 409
17.2 使用API提取信息 409
0710 获得当前系统分辨率和色彩数 409
0711 获得当前系统支持的分辨率、颜色数和刷新频率 410
0712 怎样判断系统是否安装声卡 411
0713 获取操作系统版本 411
0714 获取磁盘序列号 413
0715 如何提取图标 413
0716 显示密码编辑框中的密码 414
17.3 API实现的视觉效果 415
0717 跟随鼠标移动的雪花 415
0718 如何利用API设置不规则窗体(文字窗体) 416
0719 如何利用API设计不规则窗体(五角星) 417
0720 如何利用API设计不规则窗体(两个叠加的圆) 417
0721 隐藏鼠标指针 418
0722 半透明窗体(Windows 2000及其以上版本) 419
0723 镂空窗体(Windows 2000及其以上版本) 420
0724 屏幕变暗(关机效果) 421
17.4 API控制计算机 422
0725 怎样利用API函数打开和关闭光驱(API函数) 422
0726 如何让计算机发出嗡鸣声 422
0727 利用API函数打开“开始”菜单 423
0728 设定时间关机 423
0729 调用系统声音 424
0730 遍历系统进程 424
17.5 API对程序的控制 425
0731 利用API不让窗体的左端移出屏幕 425
0732 怎样将MDI子窗体移出MDI主窗体 425
0733 如何关闭其他应用程序 426
0734 利用API延迟程序执行 426
第18章 注册表 427
18.1 操作注册表 428
0735 打开注册表中的项 428
0736 设置键值 428
0737 禁用注册表 428
0738 删除注册表中的项 429
0739 删除注册表中项的键值 429
18.2 对桌面操作 429
0740 隐藏桌面图标 429
0741 隐藏“我的电脑” 430
0742 隐藏“网上邻居” 430
0743 隐藏“回收站” 430
0744 显示“回收站” 431
18.3 对“开始”菜单操作 431
0745 隐藏“开始”菜单中的“搜索” 431
0746 隐藏“开始”菜单中的“运行” 431
0747 隐藏“开始”菜单中的“文档” 432
0748 隐藏“开始”菜单中的“关机” 433
0749 自动删除“运行”、“文档”中的历史记录 433
18.4 系统设置 433
0750 登录背景 433
0751 如何改变输入法顺序 434
0752 如何隐藏磁盘 434
0753 禁用任务栏中鼠标右键菜单 435
0754 禁用鼠标右键菜单 435
0755 禁用“任务管理器” 435
0756 禁用“设置”中的“控制面板”与“打印机” 435
第19章 Windows应用 437
19.1 系统相关 438
0757 怎样获得Windows系统的当前用户 438
0758 怎样获得Windows启动的总时间 438
0759 如何获得当前屏幕的分辨率 438
0760 如何获得当前系统的颜色质量 439
0761 记录Windows的启动和关闭时间 439
0762 模拟“控制面板” 440
0763 关闭与重新启动计算机(Windows 2003) 441
19.2 桌面相关 441
0764 隐藏任务栏 441
0765 隐藏桌面图标 442
0766 调用“创建快捷方式”向导 443
19.3 应用程序相关 443
0767 设计程序结束Shell调用的Windows程序 443
0768 如何避免多用户同时打开一个程序 444
0769 如何设置ini文件使程序随Windows启动 444
0770 为应用程序设置热键 444
0771 在“任务管理器”中隐藏可执行文件 445
第20章 应用程序控制 447
20.1 调用系统工具 448
0772 调用画图程序 448
0773 调用记事本 448
0774 如何调用记事本中的数据 449
0775 调用系统中的输入法 449
0776 调用系统“创建快捷方式”向导 451
0777 调用系统日期和时间控制面板 452
0778 调用Windows计算器 452
20.2 在Visual Basic中控制Word 452
0779 如何在Visual Basic中使用Word对象 452
0780 如何调用Word-1 453
0781 如何调用Word-2 455
0782 批量打开Word文档 455
0783 调用Word统计字数 455
0784 自动统计文章页码 456
0785 打开文件管理器 459
0786 给指定的Word文档插入页码 460
0787 如何将DBF文件输出到Word 461
0788 用OLE内嵌Word对象 462
0789 如何在Word文档中添加内容 463
0790 用Visual Basic+Word模板+数据库制作合同 463
0791 在Word文档中插入图片 465
0792 调用Word实现实时公告 466
0793 如何将数据库中的数据导出到Word中 467
0794 如何将某一字段内容导入到Word中 468
0795 文件名提取器 469
20.3 在Visual Basic中控制Excel 471
0796 如何在Visual Basic中使用Excel对象 471
0797 Visual Basic如何操作Excel 472
0798 如何关闭Excel 473
0799 如果计算机上没有Excel,则判断并提示用户 473
0800 怎样利用Excel实现数据计算 473
0801 如何将DataGrid控件中的数据导出到Excel 474
0802 如何用Visual Basic调用Excel生成折线图 475
20.4 串口控制 477
0803 如何利用MSComm控件检测Modem的状态 477
0804 如何利用MSComm控件拨打电话 478
0805 怎样使用串口传输数据 478
0806 怎样通过串口控制对方计算机 479
20.5 其他应用 480
0807 如何调用Outlook管理邮件 480
0808 如何调用PowePoint电子文档 480
0809 显示Office助手 481
0810 在Visual Basic中调用帮助文件 482
0811 如何调用EXE文件 483
0812 如何启动其他程序 483
0813 用Visual Basic操纵XML文档 484
第21章 数据库技术 485
21.1 数据库连接技巧 486
0814 如何引用ADO对象 486
0815 如何使用ADO对象访问Access数据库 486
0816 如何使用ADO对象连接SQL Server数据库 487
0817 如何动态识别Access数据库路径 488
0818 如何使用ADO访问Oracle数据库 489
0819 如何使用ADO访问Excel文件 489
0820 如何使用DAO连接Access 2000/2003数据库 489
0821 如何使用Data控件连接Access 2000/2003数据库 490
0822 使用DAO连接加密的Access数据库 490
0823 使用ADO连接加密的Access数据库 491
0824 如何使用RDO连接SQL Server数据库 491
0825 如何建立远程数据库连接 492
0826 如何提高数据库的访问效率 493
21.2 数据验证技巧 493
0827 如何判断连接已打开 493
0828 空数据不允许保存 494
0829 如何判断读取的字段值为空 494
0830 如何判断表中是否有记录 494
0831 验证数据绑定控件中的数据 495
0832 如何判断字段的大小 495
0833 重复数据不允许保存 496
0834 如何判断输入数据是否符合要求 496
21.3 增、删、改、查技巧 497
0835 存取字段数据的几种方法 497
0836 使用数据绑定控件实现增、删、改 498
0837 非绑定控件的增、删、改 499
0838 使用ADO对象实现增、删、改 499
0839 利用SQL语句添加数据 500
0840 为什么使用ADO Data控件的Delete方法无法删除DataGrid控件中的数据 500
0841 如何删除指定的记录 501
0842 批量删除数据 501
0843 批量删除用户选定的数据 501
0844 如何修改DataGrid中的数据,并自动计算金额 502
0845 如果ADO的记录源类型为表,则如何使用查询语句 502
0846 如何处理select语句中的单引号 503
0847 如何求数据表中记录的总数 503
0848 如何解决在SQL Server中删除重复记录出错 503
0849 使用BeginTrans和CommitTrans方法 504
21.4 数据控件相关技巧 505
0850 动态设置ADO控件的属性 505
0851 如何用DataCombo和DataList显示关系表中的数据 505
0852 动态为DataGrid控件设置数据源 506
0853 如何用代码设置DataGrid控件的列表头 506
0854 快速将DataGrid控件中的数据显示在文本框中 506
0855 如何在DataGrid控件中实现下拉列表框 507
0856 如何使用代码格式化DataGrid控件中的数据 508
0857 根据数据字段类型自动格式化DataGrid表格中的数据 508
0858 如何使DataGrid控件刷新前与刷新后记录的位置保持不变 508
0859 如何隐藏MSHFlexGrid控件的行或列 509
0860 如何动态调整MSHFlexGrid表格中字段的顺序 509
0861 如何使用MSHFlexGrid控件批量录入数据 509
0862 怎样设置奇、偶行颜色不同的表格 510
0863 如何在MSHFlexGrid控件中显示图片 511
0864 利用MSHFlexGrid控件的排序功能对数据排序 511
0865 如何合并MSHFlexGrid控件中的数据 512
0866 利用MSHFlexGrid控件的合并功能制作特色报表 513
0867 怎样动态增加行 514
21.5 二进制数据处理技巧 515
0868 使用存取文件路径的方法存取图片 515
0869 使用AppendChunk方法将二进制文件存入数据库中 516
0870 使用Stream对象将二进制文件存入数据库 517
0871 使用GetChunk方法导出数据库中的二进制文件 518
0872 怎样用Stream对象将数据库中的二进制数据导出 519
0873 如何向SQL Server数据库中存入图片 520
0874 读取并打开数据库中存储的文本文件 521
0875 读取并打开数据库中存储的图片 522
0876 读取并打开数据库中存储的多媒体文件 522
0877 将SQL Server数据库中的image数据类型的图形文件导出为bmp文件 523
21.6 数据库维护 524
0878 备份Access数据库 524
0879 SQL Server数据库的备份与恢复 525
0880 如何定时数据备份 527
0881 修复Access数据库 529
0882 压缩数据库文件 529
0883 在Visual Basic中附加SQL Server数据库 530
0884 在Visual Basic中批量附加SQL Server数据库 531
0885 在Visual Basic中分离SQL Server数据库 532
21.7 数据库和其他文件的转换 533
0886 如何将硬盘文件目录转为数据库数据 533
0887 如何将数据库文件转换为文本文件 534
0888 如何将数据库数据传给Excel 536
0889 如何将Excel数据传给Access数据库 537
0890 如何将数据库数据传给Word 538
0891 如何将SQL Server数据库中的表插入到Access数据库中 539
0892 SQL Server导入Access时,如何处理decimal类型字段引起的错误 540
0893 如何将Access数据库转换为SQL Server 2005数据库 540
21.8 数据库结构的创建与读取技巧 541
0894 如何使用DAO创建Access数据库 541
0895 如何使用ADOX动态创建Access数据库和表 542
0896 如何获得Access数据库中的所有表 543
0897 如何用代码创建SQL Server数据库、表和字段 543
0898 如何获取SQL Server服务器 544
0899 如何获取SQL Server数据库 545
0900 如何获取SQL Server数据表 545
0901 如何获取字段并将其添加到下拉列表框中 546
0902 如何判断一个表是否存在 547
21.9 数据库安全 547
0903 如何加密密码字符串 547
0904 使用DAO方法创建加密数据库 549
0905 如何锁定数据库中的表 549
0906 如何为数据库上锁 550
0907 改变Access 2000/2003数据库头文件加密数据库 550
0908 改变扩展名保护Access数据库 550
0909 防止SQL注入式攻击 551
21.10 SQL Server数据库相关技巧 552
0910 如何解决SQL Server 2000安装失败的问题 552
0911 SQL Server 2000安装过程不成功的解决方法 553
0912 sa登录失败 554
0913 如何设置SQL Server登录密码 554
0914 SQL Server 2000安装程序配置服务器失败的解决方案-1 555
0915 SQL Server 2000安装程序配置服务器失败的解决方案-2 555
0916 如何升级至SQL Server 2005 555
0917 已存在SQL Server默认实例的计算机上安装SQL Server 2005实例 556
0918 SQL Server 2005登录错误 556
0919 如何隐藏实例 557
0920 如何选择SQL Server 2005的网络协议 557
第22章 SQL查询相关技术 559
22.1 简单查询 560
0921 选择所有列和部分列 560
0922 在查询时使用列别名 560
0923 在查询时显示列计算结果 560
0924 在查询时对列输出限制条件 560
22.2 常量查询 561
0925 数值型常量查询 561
0926 字符型常量查询 561
0927 日期型常量查询 561
0928 逻辑型数据常量查询 562
22.3 变量查询 562
0929 数值型变量查询 562
0930 如何把字符型变量作为查询条件查询 563
0931 如何把字符型变量作为字段查询 563
0932 如何把字符型变量作为表查询 563
0933 如何对日期型变量进行查询 564
22.4 控件查询 564
0934 查询控件中的数值型数据 564
0935 查询控件中的字符型数据 564
0936 如何把控件作为字段或表查询 564
0937 查询控件中的日期型数据 565
22.5 模式查询 565
0938 在Jet SQL语法中使用通配符 565
0939 在SQL Server中用通配符“%”进行查询 566
0940 在SQL Server中用通配符“[]”进行查询 566
0941 在SQL Server中用通配符“_”进行查询 566
0942 在SQL Server中用通配符“[∧]”进行查询 567
22.6 排序 567
0943 查询结果按单列排序 567
0944 查询结果按多列排序 567
22.7 限制结果查询 568
0945 如何查询前5名数据 568
0946 如何查询后5名数据 568
0947 如何取出数据统计结果前3名数据 569
0948 如何查询前百分之十的数据 569
22.8 周期、日期查询 569
0949 查询指定日期的数据 569
0950 查询指定时间段的数据 569
0951 按月查询数据 569
0952 只输出日期时间型数据的日期部分 570
0953 在不同数据环境中进行日期查询 570
22.9 比较、逻辑、重复相关查询 570
0954 进行比较查询 570
0955 逻辑运算符有哪些 571
0956 怎样不显示重复数据 571
0957 not查询 572
0958 and查询 572
0959 or查询 572
22.10 分组统计 572
0960 group by子句进行分组查询的注意事项 572
0961 按单个字段分组 573
0962 按多个字段分组 573
0963 group by与having一起使用 573
0964 对统计结果排序 573
0965 将查询结果分组小计 573
0966 利用having语句过滤分组数据 574
0967 having语句应用在多表查询中 574
22.11 聚合函数 575
0968 sum()函数和avg()函数应用 575
0969 min()函数和max()函数应用 575
0970 count()函数和count_big()函数应用 575
22.12 多表查询 576
0971 如何在where子句中连接几个表 576
0972 如何在from子句中连接几个表 576
22.13 子查询与嵌套查询 576
0973 简单嵌套查询 576
0974 带in的嵌套查询 576
0975 带not in的嵌套查询 577
0976 带some的嵌套查询 577
0977 带any的嵌套查询 577
0978 带all的嵌套查询 577
0979 带exists的嵌套查询 578
22.14 内连接查询 578
0980 一对一关系的内连接 578
0981 一对多关系的内连接 578
0982 多对多关系的内连接 578
22.15 外连接查询 579
0983 左外连接查询 579
0984 右外连接查询 579
0985 全外连接查询 579
22.16 联合查询 579
0986 union与连接之间的区别 579
0987 使用union all合并表 580
0988 union中的order by子句 580
0989 union中的自动数据类型转换 580
0990 不同数据类型表的union 581
0991 合并不同列数的两个表的union 581
0992 3个或更多表的union 581
22.17 交叉表查询 581
0993 用case实现交叉表查询 581
0994 用SQL Server 2005新增的pivot实现交叉表查询 582
0995 用SQL Server 2005新增的unpivot实现交叉表查询 583
0996 动态交叉表 583
22.18 数据添加 584
0997 为指定的列插入值 584
0998 为所有列插入值 584
0999 批量添加数据 585
1000 insert语句和完整性约束 585
1001 利用多个表中的字段创建新记录集 585
22.19 数据更新 586
1002 如何修改个别行中的个别列 586
1003 如何修改多个列 586
1004 如何修改所有行中的某一列 587
1005 如何使用一个单行的子查询来更新列 587
1006 update语句和完整性约束 588
22.20 数据删除 588
1007 用where子句删除部分数据 588
1008 删除表中所有数据 588
1009 带有子查询的DELETE数据 588
1010 删除表中多余的重复行数据 588
1011 对数据库数据进行局部删除 589
22.21 其他方面 589
1012 检查SQL语句的两种方法 589
1013 利用Execute执行SQL语句 589
1014 如何解决在查询过程中字段类型不同的问题 590
1015 把查询结果生成表 591
1016 追加查询结果到已存在的表 591
1017 Visual Basic实现SQL Server 2000存储过程调用 593
1018 在查询中使用日期函数 594
1019 在程序中使用触发器 595
1020 在程序中应用视图 595
第23章 打印与报表技术 597
23.1 基础打印技巧 598
1021 设置打印方向 598
1022 打印纸张大小设置 598
1023 打印机的进纸设置 600
1024 如何设置打印质量 600
1025 打印度量单位设置 601
1026 打印机颜色模式设置 601
1027 打印线型设置 602
1028 填充形式设置 602
1029 设置打印边界 603
1030 如何设置打印位置 603
1031 如何画直线、矩形、圆等 603
1032 将打印内容发送到打印机 604
1033 使用KillDoc方法结束当前的打印作业 605
23.2 打印各种文字 605
1034 打印简单的字符串 605
1035 设置打印字体、字号等 605
1036 打印彩色文字 606
1037 文字竖排打印效果 606
1038 如何使打印的超长文本自动换行 606
1039 根据纸张大小和字高计算每页打印行数 607
23.3 打印窗体、控件和图形 608
1040 打印窗体 608
1041 打印ListView控件中的内容 609
1042 打印RichTextBox控件中的内容 610
1043 如何打印浏览器内容 611
1044 如何打印图形 611
1045 打印简历 612
1046 打印图表 614
1047 可批量打印文件夹照片的程序 614
23.4 连续、分页和分栏打印 616
1048 换页打印 616
1049 如何实现动态分页打印 617
1050 分栏打印 623
1051 连续打印 625
1052 可调整列宽的打印 628
23.5 与打印机相关的技巧 629
1053 查询系统可用打印机并设置默认打印机 629
1054 选择要使用的打印机 629
1055 捕获打印机错误 630
1056 使用API函数调用打印对话框 630
1057 调用“打印”对话框并设置打印页的起止范围 631
1058 快速打印多个复制内容 633
23.6 证书、单据特色打印 634
1059 批量打印Access数据库中的数据 634
1060 打印SQL Server 2000数据库中的数据 635
1061 如何打印连续号码的标签 636
1062 证书套打 637
1063 如何设计条形码打印程序 638
1064 批量打印条形码 639
1065 批量打印Word文档 642
1066 批量打印Excel表格 642
1067 编写银行取款排号小票打印程序 643
1068 打印邮政汇款通知单 643
23.7 使用Data Environment和Data Report打印 645
1069 如何使Data Environment和Data Report出现在“工程”菜单中 645
1070 使用数据环境对象Connection连接数据库 645
1071 使用代码连接数据库 647
1072 拖动对象创建数据绑定控件 647
1073 如何通过存储过程创建Command对象 647
1074 使用Command对象创建关系层次结构 648
1075 使用Command对象创建分组层次结构 650
1076 如何查看层次结构信息 652
1077 一个简单的报表 652
1078 如何设置DataReport的报表宽度和纸宽 653
1079 预览DataReport报表 654
1080 编程打印DataReport报表 654
1081 向报表中添加日期、时间、页码 654
1082 如何在报表中显示窗体控件中的数据 655
1083 分组统计报表 655
1084 主明细报表 656
1085 导出报表为HTML文件 659
1086 利用Command执行动作查询语句 660
1087 如何在DataReport中使用带参数的SQL语句选择数据 661
23.8 Crystal Reports水晶报表 662
1088 如何安装水晶报表Crystal Reports 662
1089 怎样用Crystal Reports创建一个报表 662
1090 使用水晶报表时,如何设置横向页面 666
1091 如何用Visal Basic程序打印水晶报表 666
1092 如何动态设置报表路径 666
1093 使用Crystal Reports设计商用报表 666
1094 图表样式的报表 669
第24章 图表技术 671
24.1 简单图表 672
1095 如何将数据添加到图表-1 672
1096 如何将数据添加到图表-2 673
1097 利用DataSource属性获取数据时缺少字段的问题 673
1098 如何将数据添加到图表-3 673
1099 如何对图表数据进行打印 674
1100 如何调整表格数据使图表也动态随之调整 675
1101 利用Transform制作“透视表” 675
24.2 图表样式与外观 676
1102 向图表中添加或修改标签 676
1103 如何修改图表的字体和颜色 677
1104 动态设置图表区字体 678
1105 动态填充图表元素的颜色 678
1106 如何动态改变图表的比例 679
1107 如何设置和改变图表的脚注 680
1108 如何动态修改图表图例 680
24.3 图表综合应用 681
1109 将数组中的数据利用图表分析 681
1110 如何在多个关系表中分析数据 682
1111 如何对某一行数据进行分析 683
1112 如何对分组统计数据进行分析 684
1113 如何利用三维图表分析数据 685
1114 利用饼型图分析产品市场占有率 686
1115 饼型图表分析与行比较 686
1116 如何用图表分析企业进货、销售和库存 687
1117 利用折线图分析商品的价格走势 687
1118 折线图表分析与行比较 688
1119 利用柱型图分析房产销售情况 688
1120 利用区域图对比分析员工业绩 689
1121 利用组合图分析高级轿车的销售情况 689
1122 组合图加载数据的方式 690
第25章 网络开发技术 691
25.1 计算机与局域网 692
1123 获得本机的机器名 692
1124 获得本机的IP地址 692
1125 利用API获得IP地址 692
1126 判断输入的IP地址是否符合要求-1 693
1127 判断输入的IP地址是否符合要求-2 694
1128 扫描端口号 695
25.2 局域网资源 696
1129 获得局域网中的计算机名和IP地址 696
1130 获得计算机名称和工作组 697
1131 映射网络驱动器 698
1132 如何确定与服务器相连的打印机 699
25.3 局域网控制 700
1133 局域网信使服务 700
1134 Ping对方计算机 701
1135 远程控制局域网计算机 701
1136 获得网卡的物理地址 702
1137 网速监控 703
1138 设计点对点通信程序(客户端) 704
第26章 Web编程 707
26.1 IE相关 708
1139 如何隐藏/显示IE浏览器的右键关联菜单 708
1140 如何禁用IE“查看”菜单下的“工具栏”的子菜单 709
1141 如何设置IE的主页 710
1142 禁用“重置Web设置”按钮 710
1143 如何获得当前打开的IE浏览器信息 711
26.2 Internet连接 712
1144 打开一个网址 712
1145 判断是否连接到Internet-1 712
1146 判断是否连接到Internet-2 713
1147 利用Internet Transfer控件判断Internet连接状态 714
26.3 网页相关 715
1148 利用WebBrowser控件获取网页的标题 715
1149 利用WebBrowser控件获得网页的网址 715
1150 获取网页源码 716
1151 如何获取HTTP头部信息 717
1152 获得网页中的所有超链接 717
1153 浏览器中的查看源文件的功能 718
1154 如何对需要Cookie验证的网页进行操作 719
26.4 邮件发送和接收 720
1155 发送邮件 720
1156 邮件群发程序 720
1157 发送带附件的邮件 721
1158 检测邮箱是否有信 722
1159 邮件的阅读 722
1160 显示邮件信息 722
26.5 文件上传和下载 723
1161 如何使用Internet Transfer控件 723
1162 文件下载 723
1163 登录到FTP服务器 725
1164 浏览FTP服务器目录 725
1165 上传文件 726
1166 不能连接到远程主机 727
1167 删除文件 728
第27章 安全技术 729
27.1 网络安全 730
1168 编写“特洛伊木马”程序 730
1169 监控计算机TCP/IP端口 731
1170 如何关闭445端口 731
1171 如何防止SYN洪水攻击 732
1172 编写SQL服务器密码扫描器 732
1173 SQL注入攻击 732
27.2 本地安全 733
1174 用Visual Basic实现Windows 2000用户限时登录 733
1175 用Visual Basic设计Windows门禁程序 733
1176 限定计算机使用时间 734
1177 限定用户使用计算机 734
1178 创建用户并分配管理员权限 735
1179 如何限制用户运行某程序 735
1180 如何加密文件夹 736
27.3 加密与解密 737
1181 利用磁盘的序列号进行软件加密 737
1182 用Visual Basic实现数据的加解密算法 738
1183 对Access数据库加密解密 739
1184 使用制作试用软件 740
1185 使用网卡加密软件 740
1186 文本文件加密与解密 741
1187 如何读取加密的Access数据库 742
1188 如何编程修复Access数据库 743
1189 如何制作随日期变化的密码 743
1190 如何限定输入错误密码的次数 744
1191 制作软件光盘版 744
第28章 程序调试与错误处理 747
28.1 控件与引用错误 748
1192 利用对话框控件显示字体时提示“无字体存在”错误 748
1193 如何解决图片读取时的“类型不匹配”错误 748
1194 使用SetFocus方法时出现“无效的过程调用或参数”的错误 748
1195 产生“对象变量或With块变量未设置”的错误 749
1196 如何解决“无效属性值”错误 749
1197 产生“找不到工程和库”的错误提示 749
28.2 语法或逻辑错误 750
1198 如何解决“Else没有If”的问题 750
1199 如何解决“Select”语句中的“变量或表达式”中出现多个变量的错误 750
1200 如何解决不循环的问题 750
1201 如何解决声明数组“要求常数表达式”错误 751
1202 如何解决Array函数不能赋值的错误 751
1203 如何解决IIF编译错误 751
1204 动态添加对象为什么无显示 752
1205 如何解决添加对象出现“对象变量或With块变量未设置”错误 752
28.3 跟踪与处理 752
1206 如何跟踪代码 752
1207 如何关闭错误处理 753
1208 如何监视调用堆栈 753
1209 如何处理错误 754
1210 设计错误处理程序 755
1211 集中化的错误处理 756
1212 运行应用程序的选定部分 757
1213 用“立即”窗口测试过程 759
1214 如何通过设置断点调试程序 760
1215 使用调试窗口调试程序 761
1216 如何根据错误信息控制程序运行 762
1217 遇错退出程序运行 762
28.4 编译或运行错误 763
1218 如何解决“代码生成器或链接器中出现未知错误” 763
1219 在出现错误时,不出现Visual Basic的错误提示且不终止程序执行 763
1220 没有启动窗体错误 763
1221 利用生成执行文件检查错误 764
1222 如何调试无法正常结束的程序 764
1223 如何调试内存溢出问题 764
28.5 其他错误及处理 765
1224 在自定义的错误处理程序中显示标准的错误提示框 765
1225 如何解决“下标越界”的错误 765
1226 如何解决“文件或路径无法找到”的错误 766
1227 字段设置主键后不能插入重复值 766
1228 如何解决SQL Server中用户登录失败 766
1229 如何解决“将截断字符串或二进制数据”的问题 767
1230 如何避免语法错误 767
1231 如何在“立即”窗口中输出变量值 767
1232 为什么变量已经声明Long型了还产生溢出 768
1233 常用程序调试技巧 768
第29章 程序打包与安装 769
29.1 打包设置 770
1234 如何修改安装程序的目录 770
1235 如何调整打包文件的位置 770
1236 利用Visual Basic给自己的软件加上卸载功能 771
1237 打包SQL Server的数据库应用程序 771
1238 修改安装程序的简便方法 772
1239 使安装自动创建子文件夹 772
29.2 安装时产生的错误 773
1240 在安装时出现“msado25.tlb注册错误” 773
1241 解决安装文件过期问题 773
1242 提示“需要MDAC_TYP.exe文件” 773
1243 “Cannot start main setup program!(……)”错误 774
1244 安装程序无法找到vb6chs.dll 774
1245 安装错误报告,DLL中没有发现DllRegisterServer 774
1246 安装时提示msvcrt.dll复制文件时发生访问冲突 774
1247 安装时注册文件C:\WINDOWS\system\msado25.tlb时出错 774
1248 安装时找不到DLL文件的路径 774
1249 安装提示某DLL目标文件在使用中 775
29.3 其他安装问题 775
1250 安装产生“path or file not found”错误 775
1251 使程序能在Win9X等较老的Windows系统中运行 775
1252 EXE程序显示中文字体及字号都不正常 776
1253 MSFlexGrid控件安装在其他计算机后不能工作 776
1254 在没有安装Visual Basic的计算机中直接使用Visual Basic的应用程序 776
第30章 自定义控件和第三方控件 777
30.1 自定义控件 778
1255 自定义透明图标控件 778
1256 自定义时间控件 778
1257 自定义GIF播放控件 779
1258 自定义菜单控件 780
1259 自定义浮动的工具栏控件 781
1260 自定义判断闰年的COM组件 782
30.2 第三方控件 782
1261 ctListBar控件(第三方控件) 782
1262 BSE控件(第三方控件) 784
1263 VsMenu控件(第三方控件) 785
1264 ccrpProgressBar控件(第三方控件) 787
1265 ccrpHotKey控件(第三方控件) 788
1266 ActiveReport 报表设计器(第三方控件) 789