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ế.
Trang 1 của 4 123 ... CuốiCuối
Kết quả 1 đến 10 của 39
  1. #1
    Ngày tham gia
    Aug 2015
    Bài viết
    0

  2. #2
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: xây dựng môt số hàm thông dụng

    Public Function Split(Ten As String, Kieu As Byte)
    Dim bytSpace As Byte
    bytSpace = InStrRev(Ten, " ", -1)

    If bytSpace = 0 Then
    Split = Ten
    Exit Function
    End If

    If Kieu = 0 Then
    Split = Right(Ten, Len(Ten) - bytSpace)
    Else
    Split = Left(Ten, bytSpace - 1)
    End If
    End Function

    Giải thích :
    Public Function Split(Ten As String, Kieu As Byte) : Ten ở đây là chuỗi bạn muốn cắt, Kieu ở đây là kiểu cắt của bạn : 0 là tách tên, khác 0 là tách họ
    bytSpace dùng để lấy khoảng trắng cuối cùng của chuỗi.

    Ví dụ : Table tblDanhSach có field Name. Dữ liệu :
    Thiên Mỹ Sao Băng
    Huỳnh Thu Nhạn
    Bạn tạo Query mới với Table này và gõ vào công thức : Split(Name,0) 'Kết quả là
    Băng
    Nhạn

    Còn nếu bạn gõ Split(Name,1) 'Có thể thay số 1 bằng bất cứ số nào từ 1 đến 255. Kết quả
    Thiên Mỹ Sao
    Huỳnh Thu

    Để đơn giản hơn bạn có thể tách ra làm 2 hàm khác nhau
    Public Function TachTen(Ten As String) As String
    Dim bytSpace As Byte
    bytSpace = InStrRev(Ten, " ", -1)
    TachTen = Right(Ten, Len(Ten) - bytSpace )
    End Function

    Public Function TachHo(Ten As String) As String
    Dim bytSpace As Byte
    bytSpace = InStrRev(Ten, " ", -1)
    If bytSpace =0 then
    TachHo = Ten
    Exit Function
    End If
    TachHo = Left(Ten, bytSpace )
    End Function

    và dùng hàm TachTen khi cần tách tên, TachHo khi cần tách họ
    Ví dụ : TachTen("Lê Minh Tiến") ---> Tiến
    TachHo("Lê Minh Tiến") ---> Lê Minh

  3. #3
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: xây dựng môt số hàm thông dụng

    Bạn thêm hàm Trim(Ten) trước khi thực hiện các dòng lệnh.
    Chương trình sẽ lỗi khi nhập thừa khoảng trắng. VD: ?Split("Le " , 0).

  4. #4
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: xây dựng môt số hàm thông dụng

    uhm, mình biết hàm Ltrim là cắt bỏ tất cả kí tự trắng bên trái, hàm Rtrim là cắt bỏ tất cả kí tự trắng bên phải, hàm Trim là cắt bỏ tất cả kí tự trắng ở bên trái và bên phải.
    Vậy có hàm nào để cắt bỏ kí tự trắng ở giữa không?
    Ví dụ như nhập tên:Huỳnh Thu Nhạn. thì nó sẽ cắt thành Huỳnh Thu Nhạn

  5. #5
    Ngày tham gia
    Apr 2016
    Bài viết
    4
    Ðề: xây dựng môt số hàm thông dụng

    Bỏ LTrim và RTrim đi dùng một Trim thôi.
    Hàm này chỉ để 1 khoảng trắng duy nhất nếu có nhiều khoảng trắng:

    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


    ____________
    PS: Trời! chờ anh nào trả lời thì bạn em đã chat với người khác rồi.
    Em thử dùng hàm này xem:

    If Emquenanhấylâurồi then
    Msgbox "Gọi điện thoại cho anh ấy!", vbInformation
    Else
    Msgbox "Mớiquenvớvẩntrênmạngthôimà!", vbCritical
    Exit Home
    End If

  6. #6
    Ngày tham gia
    Nov 2015
    Bài viết
    0
    Ðề: xây dựng môt số hàm thông dụng

    Topic này hay đây, là nơi tập hợp các hàm dùng sẵn, khi nào anh em cần thì có thể vào đây tham chiếu nhanh. :thumbup: SND chưa có hàm nào hay cả, sẽ ngâm cứu cùng các you!

  7. #7
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: xây dựng môt số hàm thông dụng




    Trích dẫn Gửi bởi isoomo
    Public Function Split(Ten As String, Kieu As Byte)
    Dim bytSpace As Byte
    bytSpace = InStrRev(Ten, " ", -1)

    If bytSpace = 0 Then
    Split = Ten
    Exit Function
    End If

    If Kieu = 0 Then
    Split = Right(Ten, Len(Ten) - bytSpace)
    Else
    Split = Left(Ten, bytSpace - 1)
    End If
    End Function

    Giải thích :
    Public Function Split(Ten As String, Kieu As Byte) : Ten ở đây là chuỗi bạn muốn cắt, Kieu ở đây là kiểu cắt của bạn : 0 là tách tên, khác 0 là tách họ
    bytSpace dùng để lấy khoảng trắng cuối cùng của chuỗi.

    Ví dụ : Table tblDanhSach có field Name. Dữ liệu :
    Thiên Mỹ Sao Băng
    Huỳnh Thu Nhạn
    Bạn tạo Query mới với Table này và gõ vào công thức : Split(Name,0) 'Kết quả là
    Băng
    Nhạn

    Còn nếu bạn gõ Split(Name,1) 'Có thể thay số 1 bằng bất cứ số nào từ 1 đến 255. Kết quả
    Thiên Mỹ Sao
    Huỳnh Thu

    Để đơn giản hơn bạn có thể tách ra làm 2 hàm khác nhau
    Public Function TachTen(Ten As String) As String
    Dim bytSpace As Byte
    bytSpace = InStrRev(Ten, " ", -1)
    TachTen = Right(Ten, Len(Ten) - bytSpace )
    End Function

    Public Function TachHo(Ten As String) As String
    Dim bytSpace As Byte
    bytSpace = InStrRev(Ten, " ", -1)
    If bytSpace =0 then
    TachHo = Ten
    Exit Function
    End If
    TachHo = Left(Ten, bytSpace )
    End Function

    và dùng hàm TachTen khi cần tách tên, TachHo khi cần tách họ
    Ví dụ : TachTen("Lê Minh Tiến") ---> Tiến
    TachHo("Lê Minh Tiến") ---> Lê Minh
    Xin góp với các bạn một "chiêu" mèo quào như sau:
    Trong VB có một lệnh gọi là lệnh Split (y chang tên hàm của bạn).
    Hàm cho này cho tách một chuỗi ra thành nhiều chuỗi con, mỗi chuỗi con sẽ được lưu vào trong một phần tử mảng.
    Vậy để lấy tên của một chuỗi họ tên, ta cũng có thể dùng cách này:

    Sub TachHoTen(ByVal chuoi As String, ByRef ho As String, ByRef ten As String)
    Dim ar() As String
    ar = Split(chuoi, " ")
    Dim i As Integer, mHo As String
    For i = 0 To UBound(ar)-1
    mHo = Trim(mHo & " " & ar(i))
    Next
    ho = mHo
    ten = ar(UBound(ar))
    End Sub


    Trong đó:
    Từ khóa ByRef chỉ định tham số truyền vào sau kh được xử lý sẽ được thay đổi luôn trong thủ tục hoặc hàm gọi TachHoTen
    VD: Đây là đoạn chương trình gọi:
    Dim ho As String, ten As String ' lúc này họ và tên là các chuỗi rỗng
    Dim hoten As String
    hoten = "Nguyen Van Sau Rieng"
    TachHoTen hoten, ho, ten
    ...
    Sau khi chạy TachHoten thì ho = "Nguyen Van Sau", còn ten = "Rieng"

    UBound là hàm lấy chỉ số cao nhất của mảng. UBound = số phần tử mảng - 1

    Tất nhiên trên đây chỉ là các lệnh cơ bản, tùy các bạn thêm mắm muối vào.

  8. #8
    Ngày tham gia
    Nov 2015
    Bài viết
    0
    Ðề: xây dựng môt số hàm thông dụng

    Các bạn ơi cho mình hỏi cách tắt hẳn thông báo : the existing table "tên bảng" will be deleted before you run the query

  9. #9
    Ngày tham gia
    Nov 2015
    Bài viết
    2
    Ðề: xây dựng môt số hàm thông dụng




    Trích dẫn Gửi bởi omoosi
    Các bạn ơi cho mình hỏi cách tắt hẳn thông báo : the existing table "tên bảng" will be deleted before you run the query
    Cái này là do bạn chạy query Make-Table trong Access.
    Với các table loại Actin query bao gồm: Make-Table, Update, Append, Delete đều sẽ hiển thị thông báo hỏi trước khi thực thi.

    Để tắt các thông báo này bạn có thể chèn các câu lệnh sau:

    Cách 1: Trường hợp bạn cho chạy query bằng phương thức OpenQuery

    DoCmd.SetWarnings False
    DoCmd.OpenQuery "tên query"
    DoCmd.SetWarnings True

    Cách 2: Thực thi query bằng phương thức Excecute. Cách này nó sẽ không hỏi gì cả, nhưng sẽ báo lỗi nếu không thực hiện được.

    Dim qr As QueryDef, st As String
    Set qr = CurrentDB.QueryDefs("tên query")
    st = qr.SQL
    Set qr = Nothing
    CurrentDB.Execute st

  10. #10
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: xây dựng môt số hàm thông dụng

    Ngại quá lại phải nhờ tới mọi người roài!
    Mình tạo queries có 2 trường: thời gian (tháng), thời gian bắt đầu lấy từ 1 bảng đã có sẵn
    Muốn thêm các trường thời gian kết thúc và thời gian còn lại mà không biết làm
    -> thời gian kết thúc được suy ra từ thời gian bắt đầu + thời gian.
    -> thời gian còn lại (ngày) được suy ra từ date() - thời gian kết thúc
    VD: thời gian: 3 tháng
    Thời gian bắt đầu: 12/10/2008
    -> Thời gian kết thúc: 12/01/2009
    date() = 12/12/2008
    -> Thời gian còn lại : 30 ngày
    Thanks

 

 
Trang 1 của 4 123 ... CuốiCuố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
  •