已經(jīng)n年不用VB了,一直不忍刪除當(dāng)年的這個(gè)文本文件。
--------------------------------------------------------------------------------------------
表示日期值的數(shù)字符號(hào) (#) 必須包含在字符串中,這樣它們才能連接到日期值。
--------------------------------------------------------------------------------------------------
Shell(pathname[,windowstyle])
執(zhí)行一個(gè)可執(zhí)行文件,返回一個(gè) Variant (Double),如果成功的話,代表這個(gè)程序的任務(wù) ID,若不成功,則會(huì)返回 0。
------------------------------------------------------------------------------------------------
在DLL中的窗體要先設(shè)對(duì)象才能打開(kāi)。
dim frm as new Form
frm.show vbModel: 主程序打開(kāi)frm,停在此句。
frm.show :主程序打開(kāi)frm, 繼續(xù)執(zhí)行。
------------------------------------------------------------------------------------------------
TreeView1.SelectedItem.Index
Node.FullPath ' \ \
--------------------------------------------------------------------
*****
不能按如下方法定義變體參數(shù):
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
----------------------------------------------------------------------
****
鍵盤字符按鍵的鍵號(hào):
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
----------------------------------------------------------------------------
***
刪除有子表的表記錄時(shí)要考慮子表的事務(wù)流操作。
oContext.SetAbort
oContext.SetComplete
----------------------------------------------------------------------------
******
工程文件引用不當(dāng)造成程序不能生成相應(yīng)對(duì)象而導(dǎo)程序不能運(yùn)行的問(wèn)題
在同時(shí)調(diào)試多個(gè)工程文件的情況下,如有如下幾個(gè)工程:
啟動(dòng)工程:SysAdmin ; 管理模塊工程: SysAdminModule ; 主工程: APSParaMaint
APSPrarMaint中不引用前兩個(gè)工程,SysAdminModule引用APSParaMaint, SysAdmin同時(shí)引用APSParaMaint與SysAdminModule。
計(jì)算機(jī)上已注冊(cè)表各工程的DLL文件,且引用的工程文件是這些DLL,那么在聯(lián)合三者構(gòu)成工程組調(diào)試時(shí),打開(kāi)的工程源文件(VBP文件)由于沒(méi)有被引用到,從而是不起作用的,程序?qū)碊LL文件運(yùn)行。應(yīng)該使其所有引用工程組內(nèi)工程的文件為源文件。如果有的是源文件,有的是DLL文件,就有可能出現(xiàn)不能生成相應(yīng)對(duì)象的問(wèn)題。
中間層工程屬性注意:
工程兼容性,線程,編譯文件的位置。
---------------------------------------------------------------------------
***
寫SQL要時(shí)時(shí)考慮空值的處理。
---------------------------------------------------------------------------------
****
在VB中獲取打印機(jī)設(shè)置的方法:
VB內(nèi)置有系統(tǒng)級(jí)全局變量Printer/Printers,其中存儲(chǔ)要當(dāng)前系統(tǒng)中的所有打印機(jī)設(shè)置情況。
可以使用set Printer = Printer(i)的方法來(lái)為當(dāng)前程序選擇打印機(jī)。
在Crystal Report 中,如RPT文件選中No Printer選項(xiàng),要想在程序中可以打印,可按如下方法:
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
由于在當(dāng)前系統(tǒng)沒(méi)有打印機(jī)設(shè)置時(shí)Printer/Printers不會(huì)被置空,其標(biāo)志性屬性都不可用,故只能用錯(cuò)誤處理來(lái)判斷無(wú)打印機(jī)設(shè)置時(shí)的情況。
--------------------------------------------------------------------------------------
**********
delete from at_UserLogonActivity
--------------------------------------------------------------------------------------
*********
數(shù)值數(shù)據(jù)校驗(yàn)的注意事項(xiàng):
1,應(yīng)在輸入控件的Validate事件中進(jìn)行校驗(yàn)。
2,校驗(yàn)內(nèi)容由主到次為:長(zhǎng)度(整數(shù)部分與小數(shù)部分),數(shù)值范圍,可否為負(fù),顯示格式及與其它數(shù)據(jù)的大小關(guān)系。與其它數(shù)據(jù)的大小關(guān)系放在所有數(shù)據(jù)錄入完成后再校驗(yàn)。
3,校驗(yàn)時(shí)要考慮輸入數(shù)據(jù)為科學(xué)計(jì)數(shù)式的校驗(yàn),如數(shù)據(jù)有長(zhǎng)度要求,可將其格式化為浮點(diǎn)數(shù)顯示再做校驗(yàn)。對(duì)于所有有數(shù)值范圍的校驗(yàn),由于一般控件錄用入值默認(rèn)為字串型,所以一定要先將其轉(zhuǎn)換嶁數(shù)值型再做校驗(yàn)。
3,對(duì)于窗體上的取消按鈕之類的控件,應(yīng)設(shè)其CauseValidate屬性為False,以便在取消操作時(shí)不做校驗(yàn)。
4,如無(wú)必要用科學(xué)計(jì)數(shù)式顯示數(shù)據(jù),就應(yīng)在輸入控件的LostFocus事件中使用Format函數(shù)將其顯示浮點(diǎn)格式。
-------------------------------------------------------------------------------
******
設(shè)計(jì)CrystalReport時(shí),如選中Save Data With Report項(xiàng)且在設(shè)計(jì)時(shí)生成了預(yù)覽數(shù)據(jù),那么此報(bào)表將不能再直接動(dòng)態(tài)生成數(shù)據(jù),而要在使用DiscardSavedData方法清空數(shù)據(jù)后才能生成。但使用DiscardSavedData后系統(tǒng)將自動(dòng)要求更新TTX數(shù)據(jù)源,如在報(bào)表原有路徑下找不到相應(yīng)的TTX文件,就會(huì)有對(duì)話框彈出要求指定文件地址。此是指出正確的文件地址或直接按取消都可以成功更新數(shù)據(jù)源。
--------------------------------------------------------------------------------
****
TrueDBGrid
當(dāng)點(diǎn)擊TrueDBGrid的行頭時(shí),此行即被設(shè)為選中狀態(tài),此時(shí)按Del鍵可以刪除此行。但如在TrueDBGrid尚未得到焦點(diǎn)是就點(diǎn)擊其行頭,TrueDBGrid只會(huì)將所選行設(shè)為選中狀態(tài),卻不會(huì)同時(shí)得到焦點(diǎn),因此此時(shí)如按Del將不能對(duì)TrueDBGrid起作用。建議在其Click事件中加入代碼使其得到焦點(diǎn)。
-----------------------------------------------------------------------------------
****
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:日期格式,字串大小寫,數(shù)值格式等。
當(dāng)IsIdentity為True時(shí)此字段要顯示,但無(wú)論何時(shí)都不可編輯。
外鍵:組合框
日期時(shí)間:DTPicker
數(shù)值字串:文本框
邏輯值:0-1值:選項(xiàng)框
離散值:?jiǎn)芜x鈕
不應(yīng)出現(xiàn)應(yīng)為外鍵的離散值。
離散值表:
TableName , FieldName , Vaule , DisplayValue
---------------------------------------------------------------------------
*******
如統(tǒng)一使用Grid新增記錄,如何處理允許一次新增多個(gè)記錄?
有外連表的Code-Desc如何實(shí)現(xiàn)?
如外連Program_Cd,可引申出更進(jìn)一步的外連表Product_Cd,如何處理?
如何在TreeView中顯示?
--------------------------------------------------------------------
********
CallByName:通過(guò)傳遞方法或?qū)傩悦麃?lái)訪問(wèn)函數(shù)。
--------------------------------------------------------------------
********
在FlexGrid中使用CheckBox的方法:
1,列表顯示時(shí)只顯示文本,在得到光標(biāo)進(jìn)行編輯時(shí)才變成CheckBox.
2,對(duì)所有數(shù)據(jù)單元格在列表時(shí)就入在CheckBox中。
3, 使用√,不加方框。
涉及到Check值的處理應(yīng)主要交由Field對(duì)象來(lái)做。
--------------------------------------------------------------------
**********
在不同進(jìn)程間不能直接作地址參數(shù)傳遞。
即在中間層與客戶端之間不能傳遞自定義的Class對(duì)象.
--------------------------------------------------------------------
********
在新生成一個(gè)對(duì)象時(shí),觸發(fā)Class_Initialize事件。此時(shí)對(duì)象還沒(méi)有生成,所以不能在此事件中出現(xiàn)對(duì)自身的對(duì)象引用,更不宜生成其子對(duì)象。可使用Init函數(shù)來(lái)做一些對(duì)角生成后的初始化工作。
-----------------------------------------------------------------------------
*****
table.Normal{width: 640pt; background-color: yellow; border-collapse: collapse;}
td.Normal{border: thin solid blue; padding: 5pt; margin: 5pt;}
使用CSS定義表格樣式時(shí),無(wú)法在Table級(jí)定義每個(gè)單元格的邊框等屬性,此時(shí)應(yīng)按上例使用。
-----------------------------------------------------------------------
****
xsl:apply-templates:遍歷指定的結(jié)點(diǎn)集(默認(rèn)為當(dāng)前結(jié)點(diǎn)的子結(jié)點(diǎn)集,不含孫結(jié)點(diǎn)),并對(duì)其依次進(jìn)行模板匹配(即格式化)。
-----------------------------------------------------------------------
****
<xsl:for-each select="Set/Record" order-by="+ number(ID)">
在IE5中不能使用sort,可用此法代替。
Technorati : VB, software tips