Tìm thủ thuật nhanh hơn với chức năng tìm trong Blog

30/6/10

Xác định số thứ trong một khoảng thời gian

Có một bạn hỏi Muốn xác định số ngày thứ (nhật, 2, 3,4...) trong một khoảng thời gian thì làm thế nào?
Trả lời:
Bạn có thể vào khung soạn code, nhập đoạn code sau vào:
Function demngay(Startdate As Date, Enddate As Date, dayinweek As Integer) As Integer
Dim songay As Integer ' so ngay trong khoang tg do
Dim s As Date 'ngay xem xet
Dim ngay As Integer 'so ngay can tim luy ke
songay = Enddate - Startdate
ngay = 0
s = Startdate
For i = 0 To songay
        If Weekday(s) = dayinweek Then
         ngay = ngay + 1
        End If
        s = s + 1
Next i
demngay = ngay
End Function
Chú ý: tham số day inweek
1:chủ nhật
2:thứ 2
3 thứ 3
4: thứ tư
5: thứ 5
6: thứ 6
7: Thứ 7

Bây giờ bạn có thể gọi từ 1 nút nhấn với tham số truyền từ 2 textbox txtTungay, txtDenngay và 1 combobox tùy biến thứ muốn tìm: cbbThu

Private Sub Command6_Click()
Dim t As Integer
t = demngay(Me.txtTungay, txtDenngay, cbbThu)
MsgBox " Tu ngay " & txtTungay & " den ngay " & txtDenngay & " Co " & t & " ngay thu " & cbbThu
End Sub

Các bạn xem demo Taixuong

____________________________________________________________________________________
Thảo luận thêm: http://thuthuataccess.com/forum

3/6/10

Thao tác với registry (nâng cao)

Trước đây mình có giới thiệu 1 bài viết giúp chúng ta thao tác với registry. Phạm vi bài viết đó chỉ là ghi/ đọc 1 giá trị vào đó nhằm tiện lợi cho lần mở chương trình kế tiếp. Các bạn có thể ứng dụng tùy biến cho user save password hay vài giá trị mà user muốn mặc định...

Xem thêm

Tuy nhiên, do một số nhu cầu đặc biệt, bạn muốn can thiệp sâu hơn vào registry. Điều này đòi hỏi bạn phải có chút am hiểu về nó. Ứng dụng là bạn có thể change workgroup, tạo ổ mạng, setting vài mặc định cho access hay các ứng dụng khác...


Dưới đây mình sẽ giới thiệu vài hàm hỗ trợ ta thao tác với registry :


Reading from the Registry:


Code:

'reads the value for the registry key i_RegKey
'if the key cannot be found, the return value is ""
Function RegKeyRead(i_RegKey As String) As String
Dim myWS As Object

On Error Resume Next
'access Windows scripting
Set myWS = CreateObject("WScript.Shell")
'read key from registry
RegKeyRead = myWS.RegRead(i_RegKey)
End Function


Checking if a Registry key exists:

Code:

'returns True if the registry key i_RegKey was found
'and False if not
Function RegKeyExists(i_RegKey As String) As Boolean
Dim myWS As Object

On Error GoTo ErrorHandler
'access Windows scripting
Set myWS = CreateObject("WScript.Shell")
'try to read the registry key
myWS.RegRead i_RegKey
'key was found
RegKeyExists = True
Exit Function

ErrorHandler:
'key was not found
RegKeyExists = False
End Function


Saving a Registry key:

Code:

'sets the registry key i_RegKey to the
'value i_Value with type i_Type
'if i_Type is omitted, the value will be saved as string
'if i_RegKey wasn't found, a new registry key will be created
Sub RegKeySave(i_RegKey As String, _
i_Value As String, _
Optional i_Type As String = "REG_SZ")
Dim myWS As Object

'access Windows scripting
Set myWS = CreateObject("WScript.Shell")
'write registry key
myWS.RegWrite i_RegKey, i_Value, i_Type

End Sub


Deleting a key from the Registry:

Code:

'deletes i_RegKey from the registry
'returns True if the deletion was successful,
'and False if not (the key couldn't be found)
Function RegKeyDelete(i_RegKey As String) As Boolean
Dim myWS As Object

On Error GoTo ErrorHandler
'access Windows scripting
Set myWS = CreateObject("WScript.Shell")
'delete registry key
myWS.RegDelete i_RegKey
'deletion was successful
RegKeyDelete = True
Exit Function

ErrorHandler:
'deletion wasn't successful
RegKeyDelete = False
End Function


Ví dụ sau cho phép bạn startip chương trình unikey lưu trong thư mục D:\\Soft\\UniKey4.0\\unikey40RC2-1101-win32\\UniKeyNT.exe


Key của nó muốn lưu trong registry là

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]


"'UniKey"="D:\\Soft\\UniKey4.0\\unikey40RC2-1101-win32\\UniKeyNT.exe"


Ta phát biểu:

Dim key as String, v as String

key="[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]

'UniKey'"

v="D:\\Soft\\UniKey4.0\\unikey40RC2-1101-win32\\UniKeyNT.exe"

RegKeySave key,v


Chúc thành công!


Ngoài ra việc thao tác với registry bạn phải thật cẩn thận vì có thể làm hỏng cả hệ thống. Nên trước khi làm việc, bạn nên sao lưu 1 bản dự phòng bất trắc.
____________________________________________________________________________________
Thảo luận thêm: http://thuthuataccess.com/forum