Chủ đề: xây dựng môt số hàm thông dụng
-
10-17-2008, 02:46 AM #1Junior Member
- 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 nào chỉ jùm mình xây dựng mấy hàm hay dùng trong access với: ví dụ như hàm chuẩn hoá xâu kí tự ấy. Nếu làm bằng C thì dễ rồi, chứ làm bằng VB thì chửa biết
View more random threads:
- Làm sao để ko cho MouseWheel ?
- Mã hóa trong Access !
- Kiểu ngày tháng trong access
- Tạo đồng đếm thời gian trong quá trình tính toán
- Cho ngày tháng khi ENTER qua
- Tối ưu thuật toán tạo thẻ kho trong access
- Từ chuyện tưởng như vớ vẩn mà học VBA...
- Giúp mình bị lỗi phóng to chữ trong Form của Access !
- Học Access bằng cách xây dựng một ứng dụng cụ thể - Quản lý Mua và Bán hàng - Phần 1 - Mô tả
- Gán nút lệnh cho phím chức năng.
-
10-18-2008, 02:18 AM #2Junior Member
- 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
-
10-19-2008, 03:24 AM #3Junior Member
- 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).
-
10-19-2008, 03:36 AM #4Junior Member
- 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
-
10-19-2008, 05:19 AM #5Silver member
- 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
-
10-19-2008, 06:11 AM #6Junior Member
- 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!
-
10-20-2008, 03:53 PM #7Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Ðề: xây dựng môt số hàm thông dụng
Gửi bởi isoomo
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.
-
10-22-2008, 04:13 PM #8Junior Member
- 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
-
10-22-2008, 04:48 PM #9Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 2
Ðề: xây dựng môt số hàm thông dụng
Gửi bởi omoosi
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-23-2008, 02:21 AM #10Junior Member
- 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
Khu dự án cao cấp Moonlight Avenue được phát triển bởi Tập đoàn Hưng Thịnh phù hợp khách hàng đẳng cấp nhất tiện ích phù hợp. Moonlight Thủ Đức phù hợp khách hàng khu an ninh phong cách nghỉ dưỡng....
Moonlight Avenue Dự án chung cư không gian thoáng mát thoải mái nhất