已經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:遍歷指定的結點集(默認為當前結點的子結點集,不含孫結點),并對其依次進行模板匹配(即格式化)。
-----------------------------------------------------------------------
****
<xsl:for-each select="Set/Record" order-by="+ number(ID)">
在IE5中不能使用sort,可用此法代替。
Technorati : VB, software tips