VB中如何根据文件的地址得到文件名(vb代码换行)

你正在 [Access911.net --> 文章 -> 文章内容]
关于一文的网友评论如下
楼层:1&&&&昵称:access911&&&&时间:日0:40:00
Public&Sub&CreateDatabase(dbName&As&String)& &&&&&sCnn&=&&Provider=Microsoft.Jet.OLEDB.4.0;Jet&OLEDB:Engine&Type=5;Data&Source=&&&&dbName& &&&&&cat.Create&sCnn&&&&&& &&&&&Set&tbl&=&New&ADOX.Table& &&&&&tbl.ParentCatalog&=&cat &&&&&With&tbl &&&&&.Name&=&&tableName&& &&&&&.Columns.Append&&ID&,&adInteger& &&&&&.Columns(&ID&).Properties(&AutoIncrement&).Value&=&True& &&&&&.Columns.Append&&aa&,&adDouble& &&&&&.Columns(&aa&).Properties(&NullAble&)&=&True& &&&&&.Columns(&aa&).Properties(&Jet&OLEDB:Allow&Zero&Length&)&=&True&&&&&&& &&&&&End&With& &&&&&catDB.Tables.Append&tblNew(0)& &&&&&Set&catDB&=&Nothing& END&SUB&
搞定了,@泳涂梢粤..... 一定要@一句 tbl.ParentCatalog&=&cat 就ok&
另外要参考: ParentCatalog&属性 &&&&&& 指定表或列的父目录以访问提供者特有的属性。 设置和返回值 设置并返回&Catalog&对象。将&ParentCatalog&设置为打开的&Catalog,可允许在向&Catalog&集合追加表或列之前访问提供者特有的属性。 说明 某些数据提供者仅允许在创建时(向其&Catalog&集合中追加表或列时)写入提供者特有的属性值。要在向&Catalog&中追加这些对象之前访问这些属性,请先在&ParentCatalog&属性中指定&Catalog。 将表或列追加到非&ParentCatalog&的&Catalog&中时,将出现错误。
楼层:2&&&&昵称:access911&&&&时间:日23:14:00
关于内存溢出错误,有一个简单的解决方法,就是将文字以特定ANSI字符的编码方式编码后存储,比如URLENCODE、BASE64、RTF等编码方式
楼层:3&&&&昵称:access911&&&&时间:日16:21:00
Function&adsfasdf() &&&&Dim&Tbl&As&New&ADOX.Table &&&&Dim&Cat&As&New&ADOX.Catalog &&&&Dim&Col&As&New&Column &&&&Dim&pro &&&&On&Error&Resume&Next &&&&Cat.ActiveConnection&=&CurrentProject.Connection &&&&'Tbl.ParentCatalog&=&Cat &&&&'Tbl.Name&=&&表1& &&&&Set&Tbl&=&Cat.Tables(&表1&) &&&&Set&Col&=&Tbl.Columns(&dadf&) &&&&Set&pro&=&Col.Properties(&Jet&OLEDB:Compressed&UNICODE&strings&) &&&&Debug.Print&pro.Value &&&&pro.Value&=&False&&&&&&&'这行产生错误 &&&& &&&&Debug.Print&Err.Description &&&&'错误提示 &&&&'多步&OLE&DB&操作产生错误。如果可能,请检查每个&OLE&DB&状态值。没有工作被完成。 &&&&'如何纠正? End&Function
楼层:4&&&&昵称:access911&&&&时间:日14:08:00
关于《如何用&ADO&以及&ADOX&设置“必填”属性?》已经的到中国微软技术工程师的解答,解答如下(注意,中国微软技术工程师的解答并不是绝对正确的) Q: 不好意思,我提问的目的是为了了解使用&ADO&来修改该属性为什么产生错误。而不是 为了用其他方式解决该问题,正如您所说的,我可以用DAO&来解决,也可以用&JET&SQL DDL&的WITH&COMPRESSION&来解决。 但是我想了解,是否能够使用&ADO&来设置,或者还是我设置错误了。 您可能也已经看到了。 “有意思的是,我即使在表设计界面中将UNICODE&压缩改为否,这里的结果仍然是 TRUE”
A: 您的语句的用法是正确的,但是很遗憾的说:我们无法通过ADO来设置该属性。这是一个ADO已知的问题。所以说我们建议您通过DAO的方式去解决它:)
Q: 非常感谢您的回答。 如果说这是一个已知错误,能否帖出相关的&KB&的ID?
A: 这个错误并没有相应的KB来阐述,在内部的文档中有这样一段重现错误的代码可以与您一起分享 ///////////////////////// //&Code Dim&conn&As&New&ADOX.Catalog Dim&tbl&As&ADOX.Table Dim&p&As&ADOX.Property Dim&col&As&ADOX.Column conn.ActiveConnection&=&&Provider=Microsoft.Jet.OLEDB.4.0;Data&Source=c:\MyAcc2KDB;& Set&tbl&=&conn.Tables(&MyTable&) Set&col&=&tbl.Columns(&TextField&)&//&A&Text&Field& For&Each&p&In&col.Properties Debug.Print&p.Name&&&&:&&&&p.Value&&&&:&&&&p.Type&&&&:&&&&p.Attributes If&p.Name&=&&Jet&OLEDB:Allow&Zero&Length&&Then p.Value&=&True&//&This&works End&If bool&=&True If&p.Name&=&&Jet&OLEDB:Compressed&UNICODE&Strings&&Then p.Value&=&True&//&Invalid&Argument&0x& End&If Next /////////////////////////
楼层:5&&&&昵称:access911&&&&时间:日11:56:00
全文本检索的应用(一)& & & 作者:allsky&&来源:转载&&加入时间: Tvdown.Net&下载站 & 基本知识 1.&SQL&Server7&的&DeskTop&版中没有全文本检索。 2.&一个表只能有一个全文本检索。 3.&被检索的表必须有单列的唯一索引。 4.&全文本的索引存储在文件系统中,而非数据库中。 5.&更新全文本索引的过程比常规索引要耗时,而且也不象常规索引那样可以由数据库系统立即更新。 6.&全文本索引包含在全文本目录(&Full-Text&Catalog&)中,每个数据库可以包含一个或多个目录,但一个目录不能属于多个数 据库。 7.&全文本检索只能在真正的表上创建,不能是视图,系统表,临时表。 8.&全文本检索会忽略某些噪音字(&noise&words),比如英文的&a,the,and,中文的'和','是'等等。 9.&如果在查询中包含&noise&words&,就会引发错误,在应用程序中应去除这些&noise&words。 启动全文本检索服务。 方法A:在企业管理器中打开&Support&Services&文件夹,在&Full-Text&Search&的右键菜单中选择&Start。 方法B:在&SQL&Server&Service&Manager&的&Services&下拉列表中选择&Microsoft&Search,并单击&Start/Continue&按 钮。 方法C:使用&net&start&mssearch&的命令行方式。 使用全文本检索向导(&Full-Text&Indexing&Wizard&)。 step1.&选择被检索的数据库,在&Tools&的菜单中,选择&Full-text&Indexing,进入欢迎(&Welcome&)的屏幕,单击&next。 step2.&选择被检索的表,单击&next。 step3.&选择唯一索引,单击&next。 step4.&选择被索引的列,单击&Add,该列显示在右栏中。单击&next。 step5.&选择目录(选择已存在的目录,或创建新的目录),单击&next。 step6.&选择或创建&population&schedule(可选项),单击&next。 step7.&单击&finish。 使用&SQL-DMO&(以&VB&为例)& step1.&在工程的引用中选择&Microsoft&SQLDMO&Object&Library。 step2.&创建&SQLServer&对象。
Dim&objSQL&As&New&SQLDMO.SQLServer objSQL.Connect&&localhost&,&&sa&,&&&
step3.&创建新的目录,并加入到被索引的数据库目录中。 Dim&objCatalog&As&New&SQLDMO.FullTextCatalog '使&pubs&为全文本检索的数据库 objSQL.Databases(&pubs&).EnableFullTextCatalogs '创建新的目录 objCatalog.Name&=&&ftcPubsTest& '将新目录加入到目录集合中 objSQL.Databases(&pubs&).FullTextCatalogs.Add&objCatalog step4.&在表上创建全文本索引。 Dim&objTable&As&New&SQLDMO.Table '指定被索引的表 Set&objTable&=&objSQL.Databases(&pubs&).Tables(&authors&) '指定目录名和唯一索引名 objTable.FullTextCatalogName&=&&ftcPubsTest& objTable.UniqueIndexForFullText&=&&UPKCL_auidind& objTable.FullTextIndex&=&True '指定被索引的列 objTable.Columns(&au_lname&).FullTextIndex&=&True objTable.Columns(&au_fname&).FullTextIndex&=&True '激活该表上的全文本索引 objTable.FullTextIndexActive&=&True step5.&启动全文本目录
objCatalog.Start&SQLDMOFullText_Full
使用存储过程 step1.&使&pubs&为全文本检索的数据库
USE&Pubs go sp_fulltext_database&'enable' step2.&创建新的目录
sp_fulltext_catalog&'ftcPubsTest','create'
step3.&指定被索引的表
sp_fulltext_table&'authors','create','ftcPubsTest','UPKCL_auidind'
step4.&指定被索引的列
sp_fulltext_column&'authors','au_lname','add' sp_fulltext_column&'authors','au_fname','add'
step5.&激活该表上的全文本索引
sp_fulltext_table&'authors','activate'
step6.&启动全文本目录
sp_fulltext_catalog&'ftcPubsTest','start_full' & ----------------------------------------------------------------------------------- 作者:allsky&&来源:转载&&加入时间: Tvdown.Net&下载站 & CONTAINS&语法 我们通常在&WHERE&子句中使用&CONTAINS&,就象这样:SELECT&*&FROM&table_name&WHERE&CONTAINS (fullText_column,'search&contents')。 我们通过例子来学习,假设有表&students,其中的&address&是全文本检索的列。 1.&查询住址在北京的学生
SELECT&student_id,student_name FROM&students WHERE&CONTAINS(&address,&'beijing'&) remark:&beijing是一个单词,要用单引号括起来。 2.&查询住址在河北省的学生
SELECT&student_id,student_name FROM&students WHERE&CONTAINS(&address,&'&HEIBEI&province&'&) remark:&HEBEI&province是一个词组,在单引号里还要用双引号括起来。 3.&查询住址在河北省或北京的学生
SELECT&student_id,student_name FROM&students WHERE&CONTAINS(&address,&'&HEIBEI&province&&OR&beijing'&) remark:&可以指定逻辑操作符(包括&AND&,AND&NOT,OR&)。 4.&查询有&'南京路'&字样的地址
SELECT&student_id,student_name FROM&students WHERE&CONTAINS(&address,&'nanjing&NEAR&road'&) remark:&上面的查询将返回包含&'nanjing&road','nanjing&east&road','nanjing&west&road'&等字样的地址。 &&&&&&&&&&A&NEAR&B,就表示条件:&A&靠近&B。 5.&查询以&'湖'&开头的地址
SELECT&student_id,student_name FROM&students WHERE&CONTAINS(&address,&'&hu*&'&) remark:&上面的查询将返回包含&'hubei','hunan'&等字样的地址。 &&&&&&&&&&记住是&*,不是&%。 6.&类似加权的查询
SELECT&student_id,student_name FROM&students WHERE&CONTAINS(&address,&'ISABOUT&(city&weight&(.8),&county&wright&(.4))'&) remark:&ISABOUT&是这种查询的关键字,weight&指定了一个介于&0~1之间的数,类似系数(我的理解)。表示不同条件有不同的侧 重。 7.&单词的多态查询
SELECT&student_id,student_name FROM&students WHERE&CONTAINS(&address,&'FORMSOF&(INFLECTIONAL,street)'&) remark:&查询将返回包含&'street','streets'等字样的地址。 &&&&&&&&&对于动词将返回它的不同的时态,如:dry,将返回&dry,dried,drying&等等。 & ----------------------------------------------------------------------------------------- 全文本检索的应用(三)& & & 作者:allsky&&来源:转载&&加入时间: Tvdown.Net&下载站 & CONTAINSTABLE&语法 我们通常在&FROM&子句中使用&CONTAINSTABLE&,就象这样:SELECT&*&FROM&table_name,CONTAINTABLE (fulltext_table,fullText_column,'search&condition')&WHERE&......。 CONTAINSTABLE&在查询方式上与&CONTAINS&几乎一样,所以就不用赘述了。CONTAINSTABLE&返回的是符合查询条件的表,在& SQL&语句中我们可以把它当作一个普通的表来使用。 我们看一个例子,比较这两种表的不同。
SELECT&FT_TBL.student_name,FT_TBL.student_score,KEY_TBL.RANK FROM&report&AS&FT_TBL&INNER&JOIN &&&&&CONTAINSTABLE(&student,address, &&&&&'ISABOUT&(city&weight&(.8),&county&wright&(.4))'&)&AS&KEY_TBL &&&&&ON&FT_TBL.student_id&=&KEY_TBL.[KEY] ORDER&BY&KEY_TBL.RANK
CONTAINSTABLE&返回的表包含有特殊的两列:KEY,RANK。 在第一部分里我们就强调了:被全文索引的表必须有唯一索引。这个唯一的索引列在返回的表中就成为&KEY。我们通常把它作为表 连接的条件。 在某些网站搜索时,结果中会出现表示匹配程度的数字,RANK&与此类似。它的值在0~1000之间,标识每一行与查询条件的匹配程 度,程度越高,RANK&的值大,通常情况下,按照&RANK&的降序排列。 FREETEXT&语法 FREETEXT&与&CONTAINS&类似,只是没有&CONTAINS&的精度高。在&CONTAINS&中,对查询条件的写法有很多要求,而&FREETEXT& 就没有,可以是任意的单词,词组或句子。看下面的例子:
SELECT&CategoryName FROM&Categories WHERE&FREETEXT&(Description,&'sweetest&candy&bread&and&dry&meat'&)
FREETEXTTABLE&语法 和&CONTAINSTABLE&一样,FREETEXTTABLE&返回带有&KEY,RANK&的表。举例说明:
SELECT&FT_TBL.CategoryName,& &&&&FT_TBL.Description, &&&&KEY_TBL.RANK FROM&Categories&AS&FT_TBL&INNER&JOIN &&&&FREETEXTTABLE(Categories,&Description,& &&&&'sweetest&candy&bread&and&dry&meat')&AS&KEY_TBL &&&&ON&FT_TBL.CategoryID&=&KEY_TBL.[KEY]
在&ASP&中使用全文本检索 Dim&cnn& Dim&rs Dim&strSQL strSQL&=&&SELECT&book_name&&&&_ &&&&&&&&&&FROM&books&&&&_ &&&&&&&&&&WHERE&CONTAINS(&description,&'&&&&Request(&search_condition&)&&&&'&)& Set&cnn&=&Server.CreateObject(&ADODB.Connection&) Set&rs&=&Server.CreateObject(&ADODB.RecordSet&) cnn.Open&&provider=datasource=.;initial&catalog=user&id=pasword=;& rs.Open&strSQL,cnn
上面的例子十分简单,仅为示意。只要掌握了&CONTAINS&和&CONTAINSTABLE&的语法,在使用上和一般的&ADO&查询一样。
楼层:6&&&&昵称:access911&&&&时间:日13:27:00
本站1年来关键字搜索排行榜 access:&324&& FLASH:&200&& 自动编号:&170&& 关系:&136&& TREEVIEW:&132&& Excel:&106&& 密码:&106&& 存储过程:&104&& 导入:&104&& 规格:&96&& 加密:&90&& 备份:&89&& 链接:&89&& 字串:&89&& 图片:&83&& 开发版:&82&& 计算列:&79&& 压缩:&77&& 查询:&76&& 报表:&73&& 导出:&69&& 日期:&67&& 保留字:&65&& 安全:&62&& ado:&59&& 文本:&59&& sql:&58&& 参数:&58&& 字段:&58&& ole&:&57&& 打包:&57&& 数据定义:&56&& 事务:&55&& in&子句:&54&& MDAC:&53&& 余额:&53&& 主键:&53&& 连接:&52&& 图片&关系:&50&& 重复:&50&& 链接表:&47&& c/s:&46&& 权限:&46&& MDE:&45&& 随机:&45&& 隐藏:&44&& 菜单:&43&& 记录:&41&& 压缩&修复:&41&& word:&40&& 80004:&39&& md5:&39&& ODBC:&39&& 同义词:&39&& INSTALLSHIELD:&38&& update:&37&& 删除:&36&& 子窗体:&36&& shift:&35&& 大小写:&34&& 修复:&34&& 分页:&33&& 参数&查询:&32&& 函数:&32&& 数据库:&32&& 体积:&32&& bt:&31&& insert:&31&& 时间:&31&& access&sql&server:&30&& 索引:&30&& 系统表:&30&& 复制:&29&& 更新:&29&& 默认值:&29&& %:&28&& create&table:&28&& 视图:&28&& 行号:&28&& 允许空:&28&& 注册:&28&& 组合框:&28&& datagrid:&27&& exe:&27&& 大写:&27&& a:&26&& SWF:&26&& 打印:&26&& 四舍五入:&26&& opens:&25&& stream:&25&& 备注:&25&& 滚轮:&25&& 远程:&25&& MSysObjects:&24&& 窗体:&24&& 数据类型:&24&& in:&23&& like:&23&& msde:&23&& 步进:&23&& 二进制:&23&& 事务处理:&23&& 数据:&23&& 文件:&23&& d:&22&& 参数查询:&22&& 环境:&22&& 库存:&22&& 文本&文件:&22&& 用api禁止鼠标滚轮:&22&& ASP:&21&& s:&21&& where:&21&& 类型:&21&& adox:&20&& alter:&20&& 必填:&20&& 表:&20&& 表名:&20&& 命令行:&20&& asp&图片:&19&& NULL:&19&& runtime:&19&& 建表:&19&& 列表框:&19&& 启动:&19&& 信息:&19&& 中级:&19&& 字段类型:&19&& 自动增加:&19&& create:&18&& default:&18&& 错误:&18&& 独占:&18&& jet:&17&& sql&server:&17&& vba:&17&& 查找:&17&& 打开:&17&& 交叉表:&17&& 临时表:&17&& 说明:&17&& 主键&SQL:&17&& &create&table&:&16&& Alter&table:&16&& chm:&16&& dao:&16&& ini:&16&& join:&16&& tree:&16&& 编号:&16&& 算法:&16&& 用户:&16&& case:&15&& DISTINCT:&15&& in子句:&15&& ldb:&15&& office:&15&& replace:&15&& 纪录:&15&& 键:&15&& 控件:&15&& 列表:&15&& 选项卡:&15&& 引用:&15&& 转换:&15&& dlookup:&14&& docmd:&14&& ListView:&14&& TXT:&14&& 创建表:&14&& 导入导出:&14&& 概念:&14&& 工作组:&14&& 恢复:&14&& 技巧:&14&& 锁定:&14&& 提示:&14&& 新建:&14&& dbf:&13&& ftp:&13&& 保存:&13&& 创建:&13&& 进销存:&13&& 排序:&13&& 替换:&13&& 图:&13&& 图标:&13&& 新建&数据库:&13&& 页小计:&13&& 硬盘:&13&& 字串&加密:&13&& 自动:&13&& ACCESS开发版:&12&& insert&into:&12&& instr:&12&& JET&SQL:&12&& ORACLE:&12&& select:&12&& sum:&12&& 表&存在:&12&& 登陆&密码:&12&& 关联:&12&& 默认:&12&& 外部:&12&& 颜色:&12&& 溢出:&12&& .ldb:&11&& comdlg:&11&& 帮助:&11&& 动态:&11&& 计算:&11&& 连接&字串:&11&& 破解:&11&& 鼠标:&11&& 数据库与图片的关系如何处理?:&11&& 所有&表:&11&& 统计:&11&& 文本框:&11&& 新手来看:&11&& 邮件:&11&& 支票:&11&& 追加:&11&& 字符串:&11&& :&10&& delete:&10&& msysobject:&10&& union:&10&& winsock:&10&& 版本:&10&& 编译:&10&& 变量:&10&& 存在:&10&& 定义:&10&& 对话框:&10&& 发布:&10&& 复杂&报表:&10&& 宏:&10&& 进度:&10&& 拼音:&10&& 日志:&10&& 数据备份:&10&& 所有表:&10&& 图片554:&10&& 序号:&10&& 自动编号&删除:&10&& 最大:&10&& count:&9&& delphi:&9&& dll:&9&& format:&9&& runsql:&9&& 标题:&9&& 表&信息:&9&& 导:&9&& 分辨率:&9&& 公式:&9&& 关闭:&9&& 局域网:&9&& 模糊查询:&9&& 内存溢出&:&9&& 任务栏:&9&& 删除表:&9&& 数据访问页:&9&& 图像:&9&& 新建&表:&9&& 字段&信息:&9&& 自定义函数:&9&& activex:&8&& api:&8&& CAPTION:&8&& create&view:&8&& CurrentProject:&8&& date:&8&& dump:&8&& IME:&8&& isnull:&8&& MDW:&8&& mstsc:&8&& write&conflict:&8&& 保留:&8&& 背景:&8&& 标量:&8&& 表&名:&8&& 财务:&8&& 传递:&8&& 登录:&8&& 多用户:&8&& 更改&密码:&8&& 汇总:&8&& 剪贴板:&8&& 进度条:&8&& 连接字串:&8&& 屏蔽:&8&& 前辈:&8&& 锁:&8&& 网络:&8&& 用户名:&8&& 优化:&8&& 注册表:&8&& 4:&7&& 5:&7&& adp:&7&& BOM:&7&& FULL&JOIN:&7&& gif:&7&& guid:&7&& ID:&7&& IDENTITY:&7&& install:&7&& jro:&7&& office开发版:&7&& OpenSchema:&7&& r:&7&& sqlserver:&7&& TOOLBAR:&7&& 查找文件:&7&& 纯&ACCESS:&7&& 赋值:&7&& 格式:&7&& 工资:&7&& 共享:&7&& 截取:&7&& 进制:&7&& 可更新:&7&& 快捷:&7&& 路径:&7&& 内存不足:&7&& 南京企业:&7&& 批量:&7&& 平均值:&7&& 其他数据库:&7&& 如何用sql查询获取表得信息:&7&& 筛选:&7&& 身份证:&7&& 鼠标滚轮:&7&& 同步:&7&& 图表:&7&& 文本文件:&7&& 文件夹:&7&& 下拉框:&7&& 写冲突:&7&& 信息&表:&7&& 修改:&7&& 压缩数据库:&7&& 压缩修复:&7&& 影响:&7&& 运行&JET&SQL:&7&& 字段名:&7&& 最后一条记录:&7&& &alter&table&:&6&& 2003:&6&& 800:&6&& 8004:&6&& access911:&6&& Access的优点:&6&& CurrentProject对象和CodeProject对象的区别:&6&& exists:&6&& FALSH:&6&& fox:&6&& index:&6&& mac地址:&6&& MEMO:&6&& MS&Jet&SQL&for&Access&2000:&6&& recordset:&6&& TransferDatabase:&6&& transform:&6&& word.application:&6&& 表结构:&6&& 不能打开注册表关键字&:&6&& 布尔:&6&& 菜单:&6&& 插入:&6&& 当前记录:&6&& 登陆:&6&& 分析:&6&& 个性:&6&& 更改表名:&6&& 合并:&6&& 合计:&6&& 技术:&6&& 脚本:&6&& 结构:&6&& 金额:&6&& 累计:&6&& 连续:&6&& 列:&6&& 目录:&6&& 内存:&6&& 年龄:&6&& 其他:&6&& 上海:&6&& 数组:&6&& 所有记录中均未找到搜索关键字:&6&& 添加记录:&6&& 条形码:&6&& 通讯:&6&& 图书:&6&& 文件名:&6&& 销售:&6&& 小数:&6&& 新增:&6&& 约束:&6&& 注释:&6&& 字段&类型:&6&& :&5&& *.*:&5&& @@IDENTITY&:&5&& 2000:&5&& aa:&5&& access&excel:&5&& and:&5&& asf:&5&& BT&:&5&& COMMDLG:&5&& datacombo:&5&& datediff:&5&& ddl:&5&& des:&5&& EXCEL&ACCESS:&5&& excel&导入:&5&& findfirst:&5&& grid:&5&& iif:&5&& jsp:&5&& line:&5&& mda:&5&& mso:&5&& mso.exe:&5&& mysql:&5&& network&connection&may&has&been&lost:&5&& OpenDatabase:&5&& outlook:&5&& PRIMARY&KEY:&5&& Procedure:&5&& rar:&5&& RC4:&5&& relation:&5&& rnd:&5&& sql&server&access:&5&& sql&存储过程:&5&& sub:&5&& top:&5&& union&all&:&5&& vb:&5&& 保护:&5&& 仓库:&5&& 查询&变量:&5&& 出错:&5&& 窗体&标题栏:&5&& 创建&数据库:&5&& 打印当前记录:&5&& 大小:&5&& 代码:&5&& 代码注释器:&5&& 当前:&5&& 导入表:&5&& 调用:&5&& 反编译:&5&& 服务器:&5&& 复选框:&5&& 工具栏:&5&& 关机:&5&& 关键字:&5&& 交叉:&5&& 金额大写:&5&& 考勤:&5&& 空:&5&& 空字符串:&5&& 类型转换:&5&& 连接&字串&加密:&5&& 连接数据库:&5&& 两个数据库:&5&& 乱码:&5&& 人民币:&5&& 删除文件:&5&& 数据库窗口:&5&& 刷新:&5&& 搜索:&5&& 速度:&5&& 添加:&5&& 添加用户:&5&& 托盘:&5&& 唯一:&5&& 未知:&5&& 下载:&5&& 限制:&5&& 新建数据库:&5&& 学:&5&& 页:&5&& 邮件合并:&5&& 粘贴:&5&& 只读:&5&& 周:&5&& 逐渐:&5&& 属性:&5&& 字段数:&5&& 字体:&5&& 最大化:&5&& &alter&table&&add:&4&& access&runtime:&4&& access&sql:&4&& access&to&vb:&4&& access2000:&4&& access教程:&4&& Admin:&4&& ado&新建:&4&& AutoExec:&4&& b:&4&& comm&:&4&& convert:&4&& cpu:&4&& create&index:&4&& csv:&4&& database:&4&& datasource:&4&& decimal:&4&& dsum:&4&& email:&4&& EXECUTE&:&4&& FileDialog:&4&& fso:&4&& if:&4&& internet:&4&& into:&4&& IP:&4&& java:&4&& JET&DB:&4&& JET&SQL&中级:&4&& jpg:&4&& list:&4&& mdb:&4&& mschart:&4&& my&sql:&4&& notinlist:&4&& ODBC&注册:&4&& Office&XP&Developer:&4&& office*开发版:&4&& oledb:&4&& openrowset:&4&& outlook&express:&4&& password:&4&& qa:&4&& query:&4&& RGB:&4&& run:&4&& runcommand:&4&& SELECT&INTO:&4&& sheet:&4&& shell:&4&& sql语句:&4&& substr:&4&& t:&4&& time:&4&& timer:&4&& tran:&4&& VBA代码实现数据库压缩修复:&4&& view:&4&& xp:&4&& 报表打印:&4&& 比较:&4&& 标签&菜单:&4&& 拨号:&4&& 参数传递:&4&& 仓库管理:&4&& 撤消:&4&& 成本:&4&& 储存过程:&4&& 窗口:&4&& 存储:&4&& 打开文件:&4&& 大小写转换:&4&& 导出&文本:&4&& 导出:&4&& 导入&EXCEL:&4&& 导入&文本:&4&& 的:&4&& 对象:&4&& 多条件查询:&4&& 复杂:&4&& 改名:&4&& 更改&字段名:&4&& 更改密码:&4&& 关闭&计算机:&4&& 关于如何生成随机记录:&4&& 过程:&4&& 还:&4&& 环境变量:&4&& 机器名:&4&& 解密:&4&& 禁止滚轮:&4&& 警告:&4&& 开发:&4&& 连接表:&4&& 连接字符串:&4&& 名次:&4&& 命令按钮:&4&& 判断:&4&& 屏蔽&F11:&4&& 其他&数据库:&4&& 求和:&4&& 人事:&4&& 任意:&4&& 日记帐:&4&& 如何连接加密数据库:&4&& 入门:&4&& 上传:&4&& 升级:&4&& 实例:&4&& 树:&4&& 数据&定义&查询:&4&& 数据&类型:&4&& 数据表:&4&& 数据源:&4&& 数字:&4&& 条件:&4&& 通信:&4&& 通用界面:&4&& 退出:&4&& 网页:&4&& 网站:&4&& 位操作:&4&& 文档:&4&& 无聊:&4&& 系统时间:&4&& 下拉:&4&& 新增记录:&4&& 性能:&4&& 修改表:&4&& 选择:&4&& 学习:&4&& 压缩:&4&& 引号:&4&& 隐藏:&4&& 隐藏Access主窗口:&4&& 用纯ASP代码实现图片上传并存入数据库中&:&4&& 原材料仓库管理软件:&4&& 月:&4&& 运行时:&4&& 再论&Access&应用程序的打包:&4&& 增加&字段:&4&& 找不到可安装的&ISAM:&4&& 重复记录:&4&& 重命名:&4&& 主健:&4&& 追加查询:&4&& 字段&属性:&4&& 字段属性:&4&& 自动更新:&4&& 自动构建查询:&4&& 自动填充:&4&& 最小化:&4&&
楼层:7&&&&昵称:access911&&&&时间:日16:39:00
EXCEL&中的&IS&类函数 全部显示 IS&类函数 & 请参阅 本部分描述了用来检验数值或引用类型的九个工作表函数。 这些函数,概括为&IS&类函数,可以检验数值的类型并根据参数取值返回&TRUE&或&FALSE。例如,如果数值为对空白单元格的引用,函数&ISBLANK&返回逻辑值&TRUE,否则返回&FALSE。 语法 ISBLANK(value) ISERR(value) ISERROR(value) ISLOGICAL(value) ISNA(value) ISNONTEXT(value) ISNUMBER(value) ISREF(value) ISTEXT(value) Value&&&&为需要进行检验的数值。分别为:空白(空白单元格)、错误值、逻辑值、文本、数字、引用值或对于以上任意参数的名称引用。 函数&如果为下面的内容,则返回&TRUE& ISBLANK&值为空白单元格。& ISERR&值为任意错误值(除去&#N/A)。& ISERROR&值为任意错误值(#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME?&或&#NULL!)。& ISLOGICAL&值为逻辑值。& ISNA&值为错误值&#N/A(值不存在)。& ISNONTEXT&值为不是文本的任意项(注意此函数在值为空白单元格时返回&TRUE)。& ISNUMBER&值为数字。& ISREF&值为引用。& ISTEXT&值为文本。& 说明 IS&类函数的参数&value&是不可转换的。例如,在其他大多数需要数字的函数中,文本值“19”会被转换成数字&19。然而在公式&ISNUMBER(&19&)&中,“19”并不由文本值转换成别的类型的值,函数&ISNUMBER&返回&FALSE。& IS&类函数在用公式检验计算结果时十分有用。当它与函数&IF&结合在一起使用时,可以提供一种方法用来在公式中查出错误值(请参阅下面的示例)。& 示例&1 如果您将示例复制到空白工作表中,可能会更易于理解该示例。 操作方法 创建空白工作簿或工作表。& 请在“帮助”主题中选取示例。不要选取行或列标题。&
从帮助中选取示例。 按&Ctrl+C。& 在工作表中,选中单元格&A1,再按&Ctrl+V。& 若要在查看结果和查看返回结果的公式之间切换,请按&Ctrl+`(重音符),或在“工具”菜单上,指向“公式审核”,再单击“公式审核模式”。& &&& 1& 2& 3& 4& &A&B& 公式&说明(结果)& =ISLOGICAL(TRUE)&检查&TRUE&是否为逻辑值&(TRUE)& =ISLOGICAL(&TRUE&)&检查&TRUE&是否为逻辑值&(FALSE)& =ISNUMBER(4)&检查&4&是否为数值&(TRUE)& & 示例&2 如果您将示例复制到空白工作表中,可能会更易于理解该示例。 操作方法 创建空白工作簿或工作表。& 请在“帮助”主题中选取示例。不要选取行或列标题。&
从帮助中选取示例。 按&Ctrl+C。& 在工作表中,选中单元格&A1,再按&Ctrl+V。& 若要在查看结果和查看返回结果的公式之间切换,请按&Ctrl+`(重音符),或在“工具”菜单上,指向“公式审核”,再单击“公式审核模式”。& &&& 1& 2& 3& 4& 5& 6& &A& 数据& Gold& Region1& #REF!& 330.92& #N/A& 公式&说明(结果)& =ISBLANK(A2)&检查单元格&C2&是否为空白&(FALSE)& =ISERROR(A4)&检查&#REF!&是否为错误值&(TRUE)& =ISNA(A4)&检查&#REF!&是否为错误值&#N/A&(FALSE)& =ISNA(A6)&检查&#N/A&是否为错误值&#N/A&(TRUE)& =ISERR(A6)&检查&#N/A&是否为错误值&(FALSE)& =ISNUMBER(A5)&检查&330.92&是否为数值&(TRUE)& =ISTEXT(A3)&检查&Region1&是否为文本&(TRUE)& &
楼层:8&&&&昵称:access911&&&&时间:日20:10:00
&VB计算农历的算法&&&&&选择自&feng_sundy&的&Blog&& 关键字&&&VB计算农历的算法& 出处&&&& & &'下面是一个关于VB的农历算法&&
'日期数据定义方法如下& '前12个字节代表1-12月为大月或是小月,1为大月30天,0为小月29天,& '第13位为闰月的情况,1为大月30天,0为小月29天,第14位为闰月的月& '份,如果不是闰月为0,否则给出月份,10、11、12分别用A、B、C来表& '示,即使用16进制。最后4位为当年家农历新年-即农历1月1日所在公历& '的日期,如0131代表1月31日。& 'GetYLDate函数使用方式如下tYear为要输入的年,tMonth为月,tDay为& '日期,YLyear是返回值,返加农历的年份,如甲子年,YLShuXing返回& '的是属象,如鼠。IsGetGl是设置是不是通过农历取公历值,如果是,& '前三个返回相应的公历日期,而且返回值是一个公历日期。&
Function&GetYLDate(tYear&As&Integer,&tMonth&As&Integer,&tDay&As&Integer,&_& &&&&&&&&&&YLyear&As&String,&YLShuXing&As&String,&_& &&&&&&&&&&Optional&IsGetGl&As&Boolean)&As&String&
&&On&Error&Resume&Next& &&Dim&daList(1900&To&2011)&As&String&*&18& &&Dim&conDate&As&Date,&setDate&As&Date& &&Dim&AddMonth&As&Integer,&AddDay&As&Integer,&AddYear&As&Integer,&getDay&As&Integer& &&Dim&RunYue&As&Boolean& &&If&tYear&&&2010&Or&tYear&&&1901&Then&Exit&Function&'如果不是有效有日期,退出& &&'1900&to&1909& &&daList(1900)&=&&180131&& &&daList(1901)&=&&000219&& &&daList(1902)&=&&000208&& &&daList(1903)&=&&150129&& &&daList(1904)&=&&000216&& &&daList(1905)&=&&000204&& &&daList(1906)&=&&140125&& &&daList(1907)&=&&000213&& &&daList(1908)&=&&000202&& &&daList(1909)&=&&120122&& &&daList(1910)&=&&000210&& &&daList(1911)&=&&160130&& &&daList(1912)&=&&000218&& &&daList(1913)&=&&000206&& &&daList(1914)&=&&150126&& &&daList(1915)&=&&000214&& &&daList(1916)&=&&000204&& &&daList(1917)&=&&020123&& &&daList(1918)&=&&000211&& &&daList(1919)&=&&170201&& &&daList(1920)&=&&000220&& &&daList(1921)&=&&000208&& &&daList(1922)&=&&150128&& &&daList(1923)&=&&000216&& &&daList(1924)&=&&000205&& &&daList(1925)&=&&140124&& &&daList(1926)&=&&000213&& &&daList(1927)&=&&000202&& &&daList(1928)&=&&120123&& &&daList(1929)&=&&000210&& &&daList(1930)&=&&060130&& &&daList(1931)&=&&000217&& &&daList(1932)&=&&000206&& &&daList(1933)&=&&150126&& &&daList(1934)&=&&000214&& &&daList(1935)&=&&000204&& &&daList(1936)&=&&030124&& &&daList(1937)&=&&000211&& &&daList(1938)&=&&170131&& &&daList(1939)&=&&000219&& &&daList(1940)&=&&000208&& &&daList(1941)&=&&060127&& &&daList(1942)&=&&000215&& &&daList(1943)&=&&000205&& &&daList(1944)&=&&140125&& &&daList(1945)&=&&000213&& &&daList(1946)&=&&000202&& &&daList(1947)&=&&120122&& &&daList(1948)&=&&000210&& &&daList(1949)&=&&170129&& &&daList(1950)&=&&000217&& &&daList(1951)&=&&000206&& &&daList(1952)&=&&150127&& &&daList(1953)&=&&000214&& &&daList(1954)&=&&000203&& &&daList(1955)&=&&130124&& &&daList(1956)&=&&000212&& &&daList(1957)&=&&080131&& &&daList(1958)&=&&000218&& &&daList(1959)&=&&000208&& &&daList(1960)&=&&060128&& &&daList(1961)&=&&000215&& &&daList(1962)&=&&000205&& &&daList(1963)&=&&040125&& &&daList(1964)&=&&000213&& &&daList(1965)&=&&000202&& &&daList(1966)&=&&030121&& &&daList(1967)&=&&000209&& &&daList(1968)&=&&170130&& &&daList(1969)&=&&000217&& &&daList(1970)&=&&000206&& &&daList(1971)&=&&150127&& &&daList(1972)&=&&000215&& &&daList(1973)&=&&000203&& &&daList(1974)&=&&140123&& &&daList(1975)&=&&000211&& &&daList(1976)&=&&180131&& &&daList(1977)&=&&000218&& &&daList(1978)&=&&000207&& &&daList(1979)&=&&060128&& &&daList(1980)&=&&000216&& &&daList(1981)&=&&000205&& &&daList(1982)&=&&140125&& &&daList(1983)&=&&000213&& &&daList(1984)&=&&1A0202&& &&daList(1985)&=&&000220&& &&daList(1986)&=&&000209&& &&daList(1987)&=&&060129&& &&daList(1988)&=&&000217&& &&daList(1989)&=&&000206&& &&daList(1990)&=&&150127&& &&daList(1991)&=&&000215&& &&daList(1992)&=&&000204&& &&daList(1993)&=&&030123&& &&daList(1994)&=&&000210&& &&daList(1995)&=&&180131&& &&daList(1996)&=&&000219&& &&daList(1997)&=&&000207&& &&daList(1998)&=&&150128&& &&daList(1999)&=&&000216&& &&daList(2000)&=&&000205&& &&daList(2001)&=&&140124&& &&daList(2002)&=&&000212&& &&daList(2003)&=&&000201&& &&daList(2004)&=&&120122&& &&daList(2005)&=&&000209&& &&daList(2006)&=&&170129&& &&daList(2007)&=&&000218&& &&daList(2008)&=&&000207&& &&daList(2009)&=&&150126&& &&daList(2010)&=&&000214&& &&daList(2011)&=&&000214&& &&AddYear&=&tYear& &&RunYue&=&False& &&& &&If&IsGetGl&Then& &&&&AddMonth&=&Val(Mid(daList(AddYear),&15,&2))& &&&&AddDay&=&Val(Mid(daList(AddYear),&17,&2))& &&&&conDate&=&DateSerial(AddYear,&AddMonth,&AddDay)& &&&&AddDay&=&tDay& &&&&For&i&=&1&To&tMonth&-&1& &&&&&&AddDay&=&AddDay&+&29&+&Val(Mid(daList(tYear),&i,&1))& &&&&Next&i& &&&&'MsgBox&DateDiff(&d&,&conDate,&Date)& &&&&setDate&=&DateAdd(&d&,&AddDay&-&1,&conDate)& &&&&GetYLDate&=&setDate& &&&&tYear&=&Year(setDate)& &&&&tMonth&=&Month(setDate)& &&&&tDay&=&Day(setDate)& &&&&Exit&Function& &&End&If& CHUSHIHUA:& &&AddMonth&=&Val(Mid(daList(AddYear),&15,&2))& &&AddDay&=&Val(Mid(daList(AddYear),&17,&2))& &&conDate&=&DateSerial(AddYear,&AddMonth,&AddDay)& &&setDate&=&DateSerial(tYear,&tMonth,&tDay)& &&getDay&=&DateDiff(&d&,&conDate,&setDate)& &&If&getDay&&&0&Then&AddYear&=&AddYear&-&1:&GoTo&CHUSHIHUA& &&'&addday&=&NearDay& &&AddDay&=&1:&AddMonth&=&1& &&For&i&=&1&To&getDay& &&&&AddDay&=&AddDay&+&1& &&&&If&AddDay&=&30&+&Mid(daList(AddYear),&AddMonth,&1)&Or&(RunYue&And&AddDay&=&30&+&Mid(daList(AddYear),&13,&1))&Then& &&&&&&If&RunYue&=&False&And&AddMonth&=&Val(&&H&&&&Mid(daList(AddYear),&14,&1))&Then& &&&&&&&&RunYue&=&True& &&&&&&Else& &&&&&&&&RunYue&=&False& &&&&&&&&AddMonth&=&AddMonth&+&1& &&&&&&End&If& &&&&&&AddDay&=&1& &&&&End&If& &&&&& &&Next& & &&md$&=&&初一初二初三初四初五初六初七初八初九初十十一十二十三十四十五十六十七十八十九二十廿一廿二廿三廿四廿五廿六廿七廿八廿九三十&& &&dd$&=&Mid(md$,&(AddDay&-&1)&*&2&+&1,&2)& &&mm$&=&Mid(&正二三四五六七八九十寒腊&,&AddMonth,&1)&+&&月&& &&YouGetDate&=&DateSerial(AddYear,&AddMonth,&AddDay)& &&tiangan$&=&&甲乙丙丁戊已庚辛壬癸&& &&dizhi$&=&&子丑寅卯辰巳午未申酉戌亥&& &&Dim&ganzhi(0&To&59)&As&String&*&2& &&For&i&=&0&To&59& &&&ganzhi(i)&=&Mid(tiangan$,&(i&Mod&10)&+&1,&1)&+&Mid(dizhi$,&(i&Mod&12)&+&1,&1)& &&'ff$&=&ff$&+&ganzhi(i)& &&Next&i& &&'MsgBox&ff$,&,&Len(ff$)& &&YLyear&=&ganzhi((AddYear&-&4)&Mod&60)& &&shu$&=&&鼠牛虎兔龙蛇马羊猴鸡狗猪&& &&YLShuXing&=&Mid(shu$,&((AddYear&-&4)&Mod&12)&+&1,&1)& &&If&RunYue&Then&mm$&=&&闰&&+&mm$& &&& &&GetYLDate&=&mm$&+&dd$&
End&Function&
'下面是一个使用的例子,你需要在窗体上加上一个按扭,并命名为Command1,然后将下列代码复制到窗体的代码中& Private&Sub&Command1_Click()& &&Dim&ty&As&Integer,&tm&As&Integer,&td&As&Integer,&yl&As&String,&sx&As&String& &&'取公历日的农历日期& &&ty&=&1999& &&tm&=&10& &&td&=&28& &&t&=&GetYLDate(ty,&tm,&td,&yl,&sx)& &&MsgBox&t& &&MsgBox&ty&&&&-&&&&tm&&&&-&&&&td&&&&&&&&&yl&&&&&&&&&sx& &&'取1999年农历十月28的公历日期& &&t&=&GetYLDate(ty,&tm,&td,&yl,&sx,&True)& &&MsgBox&t& &&MsgBox&ty&&&&-&&&&tm&&&&-&&&&td&&&&&&&&&yl&&&&&&&&&sx& &&& End&Sub &
楼层:9&&&&昵称:access911&&&&时间:日17:42:00
程序编制技巧 在VB中使用枚举变量& VB编程技巧几例& 使用&IIF&和&SWITCH&以精减代码& 变量的地址& 向文件中写入非&ASCII&字符& VB中感叹号“!”与圆点“.”的用法差异& 0、&&(空字串)、Null、Empty、与&Nothing&的区别& 巧用Visual&Basic的RND()函数& 利用&lstrlen&计算中英文混合字串的长度& 利用&StrConv&计算中英文混合字串的长度& 如何传递不固定个数的叁数?
在VB中使用枚举变量& &&&&VB5&引入枚举变量,使用它,我们可以显著地改变应用程序的易读性: Public&Enum&TimeOfDay Morning&=&0 Afternoon&=&1 Evening&=&2 End&Enum Sub&Main() Dim&RightNow&As&TimeOfDay If&Time&&=&#12:00:00&AM#&And&Time&&&#12:00:00&PM#&Then RightNow&=&Morning ElseIf&Time&&=&#12:00:00&PM#&And&Time&&&#6:00:00&PM#&Then RightNow&=&Afternoon ElseIf&Time&&=&#6:00:00&PM#&Then RightNow&=&Evening End&If End&Sub 返回& & VB编程技巧几例 山东&许振华&   1&文本框内容的自动选择。 &&&&在软件安装等一些场合需要将文本框中的内容自动选择,比如选择确省安装路径,在VB中可用如下的事件驱动代码: sub&text1_getfocus() text1.selstart=0&’选择起始位置 text1.sellength=65000&’选择长度 end&sub sellength接近文本框允许的最大长度(65535),这样做是为了 强迫VB使用文本的实际长度。   2&防止自身多次运行。 &&&&由于WINDOWS的多任务处理功能,&有些程序可能打开后忘记了,下次用时还可能再打开,这样做会占用系统资源降低系统效率。为了防止自身被多次运行,可利用VB应用对象提供的PrevInstance属性来检测内存中是否已有一个自身的副本,若有则给出提示后结束。一般将检测代码放在FORM_LOAD()中,因为程序一运行就要检测。 代码如下: sub&form_load() if&App.PrevInstance&then msg$=App.exename&&&”has&already&run” msgbox&msg$,48&’给出程序已运行的提示和一惊叹号以示警告 end endif end&sub 3&格式化输入。 &&&&在数据输入过程中,有些数据要求一定的格式,比如限制输入的只能为数字或英文字符,这可用VB的格式输入文本框来实现。它与文本框(TEXT&BOX)功能基本相似,但多了一个MASK属性,MASK属性常用的设定如下: &&&&&&&#―限定仅能输入数字0~9; &&&&&&&A―&限定输入为英文字符及数字; &&&&&&&?―限定仅能输入英文字符; &&&&&&&.―限定小数点位置; &&&&&&&:―限定时间分隔号; &&&&&&&/―限定日期分隔号 &&&&不需编写代码,只要在设计时将格式化文本框对象(MASKED&EDIT)的MASK属性设计好所需格式即可。比如&##&-&##&-&##&可输入12-11-96。 4&用MSGBOX函数设计版权信息。 &&&&MsgBox函数可用来设计简易的版权信息,它只能显示文本,如果要求不高的话可采用它,优点是非常方便,比如在菜单ABOUT项中显示版权信息。 &&&&MsgBox函数的用法如下:MsgBox&msg&[,&[type][,&title]&] &&&&&&&msg&―需要显示的文字信息,如版权信息。 &&&&&&&type―按钮显示选择项。 &&&&&&&如&0&只显示&OK按钮(确省选择),4&显示&Yes&和&No&按钮 &&&&&&&title―标题文字信息。 &&&&MSGBOX最多能显示1024个字符,&超出的将被截去;它可自动换行,如果你想强制换行的话需要在换行处加入换行符CHR(10)。 例子: Sub&Form_Click&() Msg1&=&”&Copyright&(c)&1996”&&&Chr(10)&&&”Ver 1.0&”&’分两行显示 MsgBox&Msg1,&0,&”Copyright&demo”&’只显示一个OK按钮 End&Sub 返回& & 使用&IIF&和&SWITCH&以精减代码& &&&&在很多地方你都可以使用一个更紧凑的&IIf&函数来代替&If...Else...Endif&的结构:&例:返回两个值中较大的一个&maxValue&=&IIf(first&&=&second,&first,&second) &&&&Switch&则是一个很少使用的函数,可是在很多方面它都提供比&If...ElseIf&结构更好的&例:判断&&x&&是正、负还是&null? &&&&&&&&Print&Switch(x&0,&负&,x&0,&正&,&True,&&Null&) 返回& & 变量的地址& &&&&VB5&内置了一个&VarPtr&函数,可是此函数在&VB4&中没有提供。可是你知道吗?VB4&的运行库中已经包含了此函数。只是在用它之前,我们需要声明一下: &&&&&&&&#If&Win16&Then &&&&&&&&Declare&Function&VarPtr&Lib&&VB40016.DLL&&(variable&As&Any)&As&Long &&&&&&&&#Else &&&&&&&&Declare&Function&VarPtr&Lib&&VB40032.DLL&&(variable&As&Any)&As&Long &&&&&&&&#End&If &&&&此函数在传递一个&Type&结构(如果此结构要求其一段是另一个变量或记录的地址)给一个外部的&API&程序时十分有用。 返回& & 向文件中写入非&ASCII&字符& &&&&如何向一个文件中写入非ASCII字符(ASCII码在128-255之间)?这在&VB3&中按常规方法就可以很好处理。但是,自&VB4&起,微软引入&Unicode&后,此问题就显得有些麻烦。方法如下: &&&&&&Dim&a&As&Byte&'如果你不用&Unicode,微软推荐使用&Byte&类型替换&String&类型 &&&&&&a=&HF5&'此处直接给处&ASCII&码即可 &&&&&&Open&&test.dat&&For&Binary&As&#1 &&&&&&Put&#1,&,&a &&&&&&Close&(1) 返回& & VB中感叹号“!”与圆点“.”的用法差异 河北&马昱& &&&&在Visual&Basic中,惊叹号“!”与圆点“.”都用于给对象命名,但两者语法上却存在很大的区别,这点在编程时尤其需要注意。 &&&&圆点操作符“.”用来表示对象的属性和方法,在引用时,需要用到对象的Name、圆点和需要的属性或方法。例如要引用文本框Textl中的文本属性时可用reponse$=Text1.Text,再如要改变Form1窗体返回或读取对象高度的单位时用Form1.ScaleHeigh=2000表示。 &&&&感叹号“!”常用于当一个控件作为一个特性访问的情况下,例如引用Fomr2中Text1文本框文本属性时,可采用response$=Form2!text1.text语法格式。 &&&&虽然两者的语法应用结构有较大差异,但两条语句的性能是相同的,值得注意的是如果你在感叹号“!”的位置使用“.”可以获得对窗体上Text1特性的直接访问权,为了进一步增加感性认识,你不妨运行下面的例子来试试。 &&&&1.建立一个新项目,并在Form1窗体中增加一个命令控件。 &&&&2.双击Form1窗体,编辑Form-Load事件并输入: &&&&&&&&Form1!Command1.Caption=”Text” &&&&&&&&Form1.Command1.Caption=”It&Works” &&&&3.运行试项目,这时你就会在Command1命令框中看到字符串It&Works。 &&&&为了在程序中清楚地界定引用的控件名和该控件的属性或方法,增加程序的可读性,最好使用感叹号“!”,这也是VB的推荐方式。 返回& & 0、&&(空字串)、Null、Empty、与&Nothing&的区别& &&&&先回答以下问题吧!&经过以下的叙述之后,&变量&A、B、C、D&分别等于&0、&&、Null、&Empty、&Nothing&的哪一个? Dim&A Dim&B&As&String Dim&C&As&Integer Dim&D&As&Object &&&&A&等于&Empty,&因为尚未初始化的「不定型变量」都等于&Empty。但如果检测&A&=&&&&或&A&=&0,&也都可以得到&True&值。 &&&&B&等于&&&,&因为尚未初始化的非固定长度「字串」都等于&&&&。&但请注意&B&&&Null。 &&&&C&等于&0,&这个还有问题吗? &&&&D&等于&Nothing,&尚未设定有物件的「物件变量」都等于&Nothing,&但请不要使用&D&=&Nothing&,&而要使用&D&Is&Nothing&来判断&D&是否等于&Nothing,&因为判断&是否相等的符号是&Is&不是&=&。 &&&&最令人迷惑的地方是&Null&这个保留字,&请看以下语句: Print&X&=&Null Print&X&&&&Null &&&&结果都是输出&Null(不是&True&也不是&False),&这是因为任何一个运算式只要含有&Null&,&则该运算式就等于&Null,&实际上想要判断某一数据是否为&Null&绝对不能使用: &&&&&&&&If&X&=&Null&Then&'&永远都会得到&Null &&&&而要使用: &&&&&&&&If&IsNull(X)&Then &&&&哪一种数据会等于&Null&呢?&除了含有&Null&运算式之外,&就属没有输入任何数据的「数据字段」(在数据库中)&会等于&Null。 返回& & 巧用Visual&Basic的RND()函数 浙江&傅昌盛& &&&&Visual&Basic的RND()函数有一个重要的特征:当RND()的参数(我们称这里可以称它为种子)为负值时,同一种子(负值)产生同一个随机数序列。同时Visual&Basic还具有强大的二进制技术功能,这样我们可以按以下思路实现文件内容加密: &&&&&&X=RND(-KEY)&’KEY为正数 &&&&&&VAULE=INT(256*RND)&’产生一个随机数(以此为密码) &&&&&&Open&FILENAME$&For&Binary&As&#FILENUM’打开文件 &&&&&&Get&#FILENUM,I,A&’取文件内容 &&&&&&B=A&XOR&VAULE&’得到加密文件 &&&&结合 &&&&&&C=B&XOR&VAULE’得到解密文件(B为加密后文件内容) &&&&注意:这里的A非整个文件内容,可以是极少部分、几个字节甚至单个字节,若为单字节,则文件中的每个字节同不同的数异或,破译难度可见有多么大。具体过程: &&&&&&Sub&ENDECODE(FILENAME$,MA,FILE2$)'参数为:源文件,密码,目标文件 &&&&&&Dim&FILENUM&As&Integer,X&As&Single,I&As&Single &&&&&&Dim&CHARNUM&As&Integer,RANDOMINTEGER&As&Integer &&&&&&Dim&SINGLECHAR&As&String&*1,filen2&As&Integer'取单字节 &&&&&&If&MA&0&Them &&&&&&MA=MA*(-1) &&&&&&End&If &&&&&&X=Rnd(-MA)'参数为负 &&&&&&FILENUM=FreeFile &&&&&&Open&FILENAME$&For&Binary&As&#FILENUM&'二进制方式打开源文件 &&&&&&filen2=FreeFile &&&&&&Open&FILE2$&For&Output&As&#filen2’以顺序文件打开目标文件 &&&&&&For&i=1&To&LOF(FILENUM)'LOF()文件字节长 &&&&&&Get&#FILENUM,i,SINGLECHAR'取单字节内容 &&&&&&CHARNUM=Asc(SINGLECHAR) &&&&&&RANDOMINTEGER=Int(256*Rnd)'得到字母表 &&&&&&CHARNUM=CHARNUM&Xor&RANDOMINTEGER'异或 &&&&&&Print&#filen2,Chr$(CHARNUM);’写入目标文件 &&&&&&Next&I &&&&&&Close&FILENUM &&&&&&Close&filen2 &&&&&&ok&’调用成功对话框 &&&&&&End&Sub &&&&&&&&调用格式:ENDECODE&源文件名,密码,目标文件名 &&&&上面过程可以对任何EXE、COM、文本等文件进行加解密(奇数次加密,偶数次解密),重演性极好,保密性特优,若对上述过程进一步加工,如进行多重随机等手段处理,那么将会更上一层楼,在此不累述。 &&&&顺便提一下,上面过程若对目标文件同样以二进制文件打开、写入,那么只能对纯西文文本进行加解密,对于纯中文文本则通过修改取双字节、I的步长为2来实现,其它(中西文结合文本、EXE、COM等文件)则将得不到预期结果,其原因可以能是ASCII大于127的字符,不能正常显示,不能用put语句正常写入文件(得到的只是空格),有兴趣者不妨一试。 返回& & 利用&lstrlen&计算中英文混合字串的长度& 在&32-bit&版本的&VB&底下,&将每一个字符都视为两个&Byte,&所以 Len(&中英Mixed&)&等于&7 LenB(&中英Mixed&)&等于&14 但是在很多场合底下,&我们希望中文字长度以&2&计算,&英文字母长度以&1&计算,&此时使用的方法如下: '&欲计算字串&S&的长度 N&=&0 For&I&=&1&To&Len(S) C&=&Asc(Mid(S,&I,&1))&'&取得第&I&个字符组的字符码 If&C&&=&0&And&C&&&128&Then&'&英文 N&=&N&+&1 Else&'&中文 N&=&N&+&2 End&If Next 看起来程序有点罗唆,&如果您不喜欢这个方法,&可以使用&Windows&API&的&lstrlen&函数,&假设假计算&S&的长度,&则&API&声明式如下: Private&Declare&Function&lstrlen&Lib&&kernel32&&Alias&&lstrlenA&&(ByVal&lpString&As&String)&As&Long 而调用的叙述则是: n&=&lstrlen(&中英Mixed&&+&Chr(0)) Print&n&'&n&将等于&9 请注意调用&lstrlen&时必须加上&Chr(0),&因为此一函数是根据&Chr(0)&来判断字串的结束。 调用&lstrlen&除了程序比较简短之外,&速度也比我们写&VB&程序判断中英文字然后计算长度来的快。 返回& & 利用&StrConv&计算中英文混合字串的长度& 上一周说明利用&Windows&API&的&lstrlen&计算中英文混合字串的长度之后,台中的&Rose&读者来函,&说还有更简单的计算方法,&如下: LenB(StrConv(&中英Mixed&,&vbFromUnicode)) 说真的,&因为笔者懂得调用&Windows&API,&所以竟然忽略了此一&VB&内建的函数,可见闻道有先后,&在此笔者亦希望先闻道的读者能够将您的心得发表出来,&与喜欢&VB&的读者交流。 StrConv&的作用是字串内容的转换,&其中将叁数二设定成&vbFromUnicode,作用是把「双位元」的字串转换成中文字占用&2&Bytes、英文占用&1&Bytes&的字串,所以紧接着调用&LenB,&便可以计算出中英文混合字串的长度。 返回& & 如何传递不固定个数的叁数?& 定义副程序时,&我们必须把叁数一一列出来,&例如: Sub&MySub(&P1,&P2,&┅) 但如果我们将来调用副程序时,&可能会传入不固定个数的叁数,&那么副程序该如何定义呢?答案如下: Sub&MySub(&ParamArray&P()&)&'&把叁数&P&定义成一个阵列 如此定义副程序之后,&以下都是将来可能出现的调用叙述: MySub&&ABC&&'&只传递一个叁数 MySub&1,&3,&9,&988,&776,&234&'&传递&6&个整数叁数 MySub&123,&&abc&,&Date()&'&传递&3&个不同型别的叁数 以最后一个调用叙述为例,&P(0)&叁数将等于&123,&P(1)&叁数等于&&abc&,&P(2)&叁数则等于&Date()&函数的传回值,&而由于&P()&是一个阵列,&我们可以利用以下方法读取每一个叁数: For&i&=&0&To&UBound(P) &&&&'&P(i)&等于第&i&个叁数 Next 最后,&请注意以&ParamArray&所定义的叁数一定是&Variant(不定型)&型别,&若要判断每一个个别叁数的资料型别,&可以使用&TypeName&函数。 返回& &
请发表你的评价
上述言论由发言人自行负责,& 不对该言论负任何责任

我要回帖

更多关于 vb计算器代码 的文章

 

随机推荐