已经n年不用VB了,一直不忍删除当年的这个文本文件。
--------------------------------------------------------------------------------------------
表示日期值的数字符号 (#) 必须包含在字符串中,这样它们才能连接到日期值。
--------------------------------------------------------------------------------------------------
Shell(pathname[,windowstyle])
执行一个可执行文件,返回一个 Variant (Double),如果成功的话,代表这个程序的任务 ID,若不成功,则会返回 0。
------------------------------------------------------------------------------------------------
在DLL中的窗体要先设对象才能打开。
dim frm as new Form
frm.show vbModel: 主程序打开frm,停在此句。
frm.show :主程序打开frm, 继续执行。
------------------------------------------------------------------------------------------------
TreeView1.SelectedItem.Index
Node.FullPath ' / /
--------------------------------------------------------------------
*****
不能按如下方法定义变体参数:
Can not use parameter in this way:
Optional vSearch As Variant = Empty
Replace method
Definde parameter: Optional vSearch As Variant
Definde varible: Dim var as Variant
Transfer Value code:
If IsError(vSearch) Then
var = Empty
Else
var = vSearch
End If
----------------------------------------------------------------------
****
键盘字符按键的键号:
Char keyCode in Keyboard
48 ~ 57 , 65 ~ 90 , 96 ~ 110 , 186 ~ 192 , 219 ~ 222
VB Code:
If KeyCode < 48 Or (KeyCode > 57 And KeyCode < 65) _
Or (KeyCode > 90 And KeyCode < 96) Or _
(KeyCode > 110 And KeyCode < 186) Or _
(KeyCode > 192 And KeyCode < 219) Or KeyCode > 222 Then
Exit Function
End If
----------------------------------------------------------------------------
***
删除有子表的表记录时要考虑子表的事务流操作。
oContext.SetAbort
oContext.SetComplete
----------------------------------------------------------------------------
******
工程文件引用不当造成程序不能生成相应对象而导程序不能运行的问题
在同时调试多个工程文件的情况下,如有如下几个工程:
启动工程:SysAdmin ; 管理模块工程: SysAdminModule ; 主工程: APSParaMaint
APSPrarMaint中不引用前两个工程,SysAdminModule引用APSParaMaint, SysAdmin同时引用APSParaMaint与SysAdminModule。
计算机上已注册表各工程的DLL文件,且引用的工程文件是这些DLL,那么在联合三者构成工程组调试时,打开的工程源文件(VBP文件)由于没有被引用到,从而是不起作用的,程序将按DLL文件运行。应该使其所有引用工程组内工程的文件为源文件。如果有的是源文件,有的是DLL文件,就有可能出现不能生成相应对象的问题。
中间层工程属性注意:
工程兼容性,线程,编译文件的位置。
---------------------------------------------------------------------------
***
写SQL要时时考虑空值的处理。
---------------------------------------------------------------------------------
****
在VB中获取打印机设置的方法:
VB内置有系统级全局变量Printer/Printers,其中存储要当前系统中的所有打印机设置情况。
可以使用set Printer = Printer(i)的方法来为当前程序选择打印机。
在Crystal Report 中,如RPT文件选中No Printer选项,要想在程序中可以打印,可按如下方法:
On error resume next
crpReport.SelectPrinter Printer.DriverName, Printer.DeviceName, Printer.Port
crpReport.PaperOrientation = Printer.Orientation
If Err.Number = 484 Then
MsgBox "No printer found in you system!", vbCritical
Err.Clear
GoTo ExitHere
End If
crpReport.PrintOut True
由于在当前系统没有打印机设置时Printer/Printers不会被置空,其标志性属性都不可用,故只能用错误处理来判断无打印机设置时的情况。
--------------------------------------------------------------------------------------
**********
delete from at_UserLogonActivity
--------------------------------------------------------------------------------------
*********
数值数据校验的注意事项:
1,应在输入控件的Validate事件中进行校验。
2,校验内容由主到次为:长度(整数部分与小数部分),数值范围,可否为负,显示格式及与其它数据的大小关系。与其它数据的大小关系放在所有数据录入完成后再校验。
3,校验时要考虑输入数据为科学计数式的校验,如数据有长度要求,可将其格式化为浮点数显示再做校验。对于所有有数值范围的校验,由于一般控件录用入值默认为字串型,所以一定要先将其转换嵝数值型再做校验。
3,对于窗体上的取消按钮之类的控件,应设其CauseValidate属性为False,以便在取消操作时不做校验。
4,如无必要用科学计数式显示数据,就应在输入控件的LostFocus事件中使用Format函数将其显示浮点格式。
-------------------------------------------------------------------------------
******
设计CrystalReport时,如选中Save Data With Report项且在设计时生成了预览数据,那么此报表将不能再直接动态生成数据,而要在使用DiscardSavedData方法清空数据后才能生成。但使用DiscardSavedData后系统将自动要求更新TTX数据源,如在报表原有路径下找不到相应的TTX文件,就会有对话框弹出要求指定文件地址。此是指出正确的文件地址或直接按取消都可以成功更新数据源。
--------------------------------------------------------------------------------
****
TrueDBGrid
当点击TrueDBGrid的行头时,此行即被设为选中状态,此时按Del键可以删除此行。但如在TrueDBGrid尚未得到焦点是就点击其行头,TrueDBGrid只会将所选行设为选中状态,却不会同时得到焦点,因此此时如按Del将不能对TrueDBGrid起作用。建议在其Click事件中加入代码使其得到焦点。
-----------------------------------------------------------------------------------
****
Fileds in Table for Table Maintenance Module
NeedMaint , TableName , FieldName , FieldCaption , FieldType , IsNullable , IsPK , IsIdentity , BaseTable , BaseFields , DataRange , DataFormat , BoxType
DataRange为字串型,可采取如下几种格式:0,1 (-99,99]
DataFormat:日期格式,字串大小写,数值格式等。
当IsIdentity为True时此字段要显示,但无论何时都不可编辑。
外键:组合框
日期时间:DTPicker
数值字串:文本框
逻辑值:0-1值:选项框
离散值:单选钮
不应出现应为外键的离散值。
离散值表:
TableName , FieldName , Vaule , DisplayValue
---------------------------------------------------------------------------
*******
如统一使用Grid新增记录,如何处理允许一次新增多个记录?
有外连表的Code-Desc如何实现?
如外连Program_Cd,可引申出更进一步的外连表Product_Cd,如何处理?
如何在TreeView中显示?
--------------------------------------------------------------------
********
CallByName:通过传递方法或属性名来访问函数。
--------------------------------------------------------------------
********
在FlexGrid中使用CheckBox的方法:
1,列表显示时只显示文本,在得到光标进行编辑时才变成CheckBox.
2,对所有数据单元格在列表时就入在CheckBox中。
3, 使用√,不加方框。
涉及到Check值的处理应主要交由Field对象来做。
--------------------------------------------------------------------
**********
在不同进程间不能直接作地址参数传递。
即在中间层与客户端之间不能传递自定义的Class对象.
--------------------------------------------------------------------
********
在新生成一个对象时,触发Class_Initialize事件。此时对象还没有生成,所以不能在此事件中出现对自身的对象引用,更不宜生成其子对象。可使用Init函数来做一些对角生成后的初始化工作。
-----------------------------------------------------------------------------
*****
table.Normal{width: 640pt; background-color: yellow; border-collapse: collapse;}
td.Normal{border: thin solid blue; padding: 5pt; margin: 5pt;}
使用CSS定义表格样式时,无法在Table级定义每个单元格的边框等属性,此时应按上例使用。
-----------------------------------------------------------------------
****
xsl:apply-templates:遍历指定的结点集(默认为当前结点的子结点集,不含孙结点),并对其依次进行模板匹配(即格式化)。
-----------------------------------------------------------------------
****
在IE5中不能使用sort,可用此法代替。