Sử dụng hàm xây dựng như thế nào?

sinhvienpy89

Mỗi ngày 1 điều mới
Hội viên mới
Em tìm thấy có các hàm mà các bạn đã dày công xây dựng, nhưng mà không biết là sử dụng như thế nào.Trong Querry hay Form, Report, xin mọi người cái Demo giới thiệu.Cảm ơn trước.

PHP:
Public Function Xnull(Daychu)
'Design by Access2k - Newbee30@yahoo.com
    Daychu = Trim(Daychu)
    Dim Tim, Thay, Daytim, i
        For i = 1 To Len(Daychu)
                Tim = Mid(Daychu, i, 1)
            Select Case Tim
                Case Is = " "
                If Mid(Daychu, i + 1, 1) = " " Then
                Thay = ""
                Else
                Thay = " "
                End If
            Case Else
                    Thay = Mid(Daychu, i, 1)
            End Select
                Daytim = Daytim & Thay
        Next i
    Xnull = Daytim
End Function
 
Ðề: Sử dụng hàm xây dựng như thế nào?

Dùng bình thuờng bạn ơi:
Giá trị cần tham chiếu = Xnull(Daychu)
Ví dụ select query:
Select * From Table Where Field1 = Xnull(Field2)

Form và Report:
Text1.ControlSource = Xnull(Text2)
 
Ðề: Sử dụng hàm xây dựng như thế nào?

Em tìm thấy có các hàm mà các bạn đã dày công xây dựng, nhưng mà không biết là sử dụng như thế nào.Trong Querry hay Form, Report, xin mọi người cái Demo giới thiệu.Cảm ơn trước.

PHP:
Public Function Xnull(Daychu)
'Design by Access2k - Newbee30@yahoo.com
    Daychu = Trim(Daychu)
    Dim Tim, Thay, Daytim, i
        For i = 1 To Len(Daychu)
                Tim = Mid(Daychu, i, 1)
            Select Case Tim
                Case Is = " "
                If Mid(Daychu, i + 1, 1) = " " Then
                Thay = ""
                Else
                Thay = " "
                End If
            Case Else
                    Thay = Mid(Daychu, i, 1)
            End Select
                Daytim = Daytim & Thay
        Next i
    Xnull = Daytim
End Function

Ủa cái hàm này giống hàm cắt khoảng trắng giữa chuỗi quá ta?
Vậy thì viết chi cho phức tạp thế?

Function RemoveBlanks(mstr As String) As String
Dim tmp As String
tmp = Trim(mstr)
Do While InStr(tmp, Space(2)) <>0
tmp = RePlace(tmp, Space(2), Space(1))
Loop
RemoveBlanks = tmp
End Function
 
Ðề: Sử dụng hàm xây dựng như thế nào?

Ủa cái hàm này giống hàm cắt khoảng trắng giữa chuỗi quá ta?
Vậy thì viết chi cho phức tạp thế?

Function RemoveBlanks(mstr As String) As String
Dim tmp As String
tmp = Trim(mstr)
Do While InStr(tmp, Space(2)) <>0
tmp = RePlace(tmp, Space(2), Space(1))
Loop
RemoveBlanks = tmp
End Function

Một cách khác.
Function VTrim(SourceStr As String) As String
While InStr(SourceStr, " ") > 0
SourceStr = Replace(SourceStr, " ", " ")
Wend
VTrim = Trim(SourceStr)
End Function
 
Ðề: Sử dụng hàm xây dựng như thế nào?

Ủa cái hàm này giống hàm cắt khoảng trắng giữa chuỗi quá ta?
Vậy thì viết chi cho phức tạp thế?

Function RemoveBlanks(mstr As String) As String
Dim tmp As String
tmp = Trim(mstr)
Do While InStr(tmp, Space(2)) <>0
tmp = RePlace(tmp, Space(2), Space(1))
Loop
RemoveBlanks = tmp
End Function

Bác Phật ui!!!
Em mới làm cái hàm đệ quy để xử lý tình huống đặc biệt của chuỗi sau:

"A" & space(50000000) & "b"

Public Function CutSpace(mstr As String)
Dim l_str As String, r_str As String
Dim pos As Long, lgn As Long

r_str = Trim(mstr)
pos = InStr(1, r_str, " ")
lgn = Len(r_str)
If pos > 0 Then
l_str = Left(r_str, pos)
r_str = Right(r_str, lgn - pos)
CutSpace = l_str & CutSpace(r_str)
Else
CutSpace = l_str & r_str
End If
End Function

Lưu ý: kiểm tra chiều dài của biến mstr truyền vào. Nếu quá lớn sẽ xảy ra lỗi out of memory


Nếu dùng hàm của bác xử lý tình huống của em đưa ra là chạy phê luôn.
CPU Core 2 Duo: 95%-100%, Ram mất thêm 0.5 GB.

Hì hì, em giả sử cho vui chứ thực tế cũng hiếm gặp chuỗi nào như vậy.

:khoc::khoc:
 
Ðề: Sử dụng hàm xây dựng như thế nào?

Bác Phật ui!!!
Em mới làm cái hàm đệ quy để xử lý tình huống đặc biệt của chuỗi sau:

"A" & space(50000000) & "b"

Public Function CutSpace(mstr As String)
Dim l_str As String, r_str As String
Dim pos As Long, lgn As Long

r_str = Trim(mstr)
pos = InStr(1, r_str, " ")
lgn = Len(r_str)
If pos > 0 Then
l_str = Left(r_str, pos)
r_str = Right(r_str, lgn - pos)
CutSpace = l_str & CutSpace(r_str)
Else
CutSpace = l_str & r_str
End If
End Function

Lưu ý: kiểm tra chiều dài của biến mstr truyền vào. Nếu quá lớn sẽ xảy ra lỗi out of memory


Nếu dùng hàm của bác xử lý tình huống của em đưa ra là chạy phê luôn.
CPU Core 2 Duo: 95%-100%, Ram mất thêm 0.5 GB.

Hì hì, em giả sử cho vui chứ thực tế cũng hiếm gặp chuỗi nào như vậy.

:khoc::khoc:

Đúng là vui thật. :runcamcap:

Cái vụ chuỗi của chú đúng là "hoang đường" nhưng không phải không xảy ra, dù xác suất của nó có thể chỉ là 0.000000000001% !!!!!! (Tự cho)

Hàm đệ quy là một kỹ thuật không phải cũng xài được và ai cũng hiểu được, bởi vậy cái hàm của chú, dân pro đọc thì hiểu chứ dân amateur thì hơi bị đuối.
 

CẨM NANG KẾ TOÁN TRƯỞNG


Liên hệ: 090.6969.247

KÊNH YOUTUBE DKT

Cách làm file Excel quản lý lãi vay

Đăng ký kênh nhé cả nhà

SÁCH QUYẾT TOÁN THUẾ


Liên hệ: 090.6969.247

Top