Chào mừng đến với Diễn đàn Dân Kế Toán - Kế toán tổng hợp thực tế.
Kết quả 1 đến 6 của 6
  1. #1
    Ngày tham gia
    Nov 2015
    Bài viết
    0

    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.



    Mã nguồn PHP:
    [COLOR=#000000]
    [/COLOR][COLOR=#007700]Public Function [/COLOR][COLOR=#0000BB]Xnull[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Daychu[/COLOR][COLOR=#007700])[/COLOR][COLOR=#DD0000]'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 = DaytimEnd Function[/COLOR] 

  2. #2
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: 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)

  3. #3
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: Sử dụng hàm xây dựng như thế nào?




    Trích dẫn Gửi bởi phuyen89
    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.



    Mã nguồn PHP:
    [COLOR=#000000]
    [/COLOR][COLOR=#007700]Public Function [/COLOR][COLOR=#0000BB]Xnull[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Daychu[/COLOR][COLOR=#007700])[/COLOR][COLOR=#DD0000]'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 = DaytimEnd Function[/COLOR] 
    Ủ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

  4. #4
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: Sử dụng hàm xây dựng như thế nào?




    Trích dẫn Gửi bởi phatnq2002
    Ủ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

  5. #5
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: Sử dụng hàm xây dựng như thế nào?




    Trích dẫn Gửi bởi phatnq2002
    Ủ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:

  6. #6
    Ngày tham gia
    Nov 2015
    Bài viết
    0
    Ðề: Sử dụng hàm xây dựng như thế nào?




    Trích dẫn Gửi bởi chip2006
    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.

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •