Đánh giá chủ đề:
  • 5 Votes - 3 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Hàm Chuyển chữ Hoa thành chữ thường và ngược lại
#1
Hỏi: Tôi làm chương trình qlý SV, vô ý lúc nhập tên toàn nhập chữ thường, tôi muốn tạo một hàm có thể in hoa tất cả mẫu tự đầu của từng từ trong trường văn bản thì phải làm như thế nào?
Trả lời: Hàm của bạn làm như sau:
Mã:
Function Inhoachucaidau (Word as Variant) as String
   Dim temp as string, C as string, OldC as String, X as integer
   If IsNull(Word) then
      Exit Function
Else


   temp = CStr(LCase(Word)
   OldC = " "
   For X = 1 to Len(temp)
      C= Mid(temp, X, 1)
      If C >= "a" and C <= "z" and (OldC < "a" or OldC > "z") then
         Mid(temp, X, 1) = UCase(C)
      End If
      OldC = C
   Next X
   Inhoachucaidau = temp
End If
End Function
Lúc các bạn sử dụng thì thay đổi trường Control Suorce thành
= Inhoachucaidau([text field_của bạn])

=================================================================
Chuyển toàn bộ chữ Hoa==>thường, hoặc từ thường thành Hoa
Nếu chữ thường thành chữ Hoa bạn dùng UCase(chuỗi)
Chữ Hoa thành chữ thường: dùng LCase(chuỗi)
Chữ thường/Hoa thành chữ chỉ in hoa chữ đầu tiên dùng: inhoachucaidau(chuỗi)
Với hàm Inhoachucaidau() đã trình bày ở trên!
===============================================================
Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn haquocquan , kamikaze-2005 , changkhoonline77
#2
Có một số bạn hỏi: cách sử dụng như thế nào, đặt hàm ở đâu,....
Xin mời xem file DEMO: module1, tblDanhsach, qryDanhsach
http://www.mediafire.com/?2sm41fcxdmudfmq
Chữ ký của haquocquan Guest, you are welcome!
ღღღღღTài sản của haquocquan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn Noname , nhunguyet0103
#3
Best solution for this problem:
Use Function:

Trích dẫn: StrConv ( text, conversion, LCID )

text is the string that you wish to convert.

conversion is the type of conversion to perform. The following is a list of valid parameters for conversion.

Parameter Value Description
vbUpperCase 1 Converts the string to all uppercase.
vbLowerCase 2 Converts the string to all lowercase.
vbProperCase 3 Converts the first letter to every word to uppercase. All other characters are left as lowercase. This option is similar to the InitCap function in Oracle.
vbUnicode 64 Converts the string to Unicode.
vbFromUnicode 128 Converts the string from Unicode to the default code page of the system.

Note: If you are using the StrConv function in VBA code, you can use the vb parameter listed in the table above. If you are using this function in a query, you will have to use the numeric value.

LCID is optional. If this parameter is omitted, the StrConv function assumes the system LocaleID.

For example:

Trích dẫn: StrConv ("tech on the net", 1) would return "TECH ON THE NET"
StrConv ("TECH ON THE NET", 2) would return "tech on the net"
StrConv ("TECH ON THE NET", 3) would return "Tech On The Net"

Source document: http://www.techonthenet.com/access/funct...trconv.php
Reply
Những người đã cảm ơn Noname , Hạ Vàng , nhunguyet0103
#4
mình có một cách hay hơn không phải dung code vba. bạn có thể định dạng chuyển chữ thường thành chữ hoa như sau.
Sau khi ban tao trường name với định dạng( format: >= biến chữ thường thành chữ hoa: ví dụ:tôi là hoa= HOA, và dùng format:<= biến chữ hoa tành chữ thường: KẾT QUẢ = Kết quả.

---------------- Các bạn thử nhé. đây là ví dụ mình làm: http://www.mediafire.com/?bt1n4cod58gr1q4
Chữ ký của quanghoasla Hãy chia sẻ kinh nghiệm cùng mình trênThuThuatAccess nhé! Chúc vui vẻ rose
My site: My site hoặc My site
ღღღღღTài sản của quanghoasla (View All Items) ღღღღღ
Reply
Những người đã cảm ơn Noname , Hạ Vàng , nhunguyet0103 , MieuNu
#5
(14-05-11, 11:41 AM)quanghoasla Đã viết: mình có một cách hay hơn không phải dung code vba. bạn có thể định dạng chuyển chữ thường thành chữ hoa như sau.
Sau khi ban tao trường name với định dạng( formatsmug= biến chữ thường thành chữ hoa: ví dụ:tôi là hoa= HOA, và dùng format:<= biến chữ hoa tành chữ thường: KẾT QUẢ = Kết quả.

---------------- Các bạn thử nhé. đây là ví dụ mình làm: http://www.mediafire.com/?bt1n4cod58gr1q4

Cách của bạn hay quá, đúng là khi ta đặt ở ô format dấu: > hoặc < thì nó biến thường thành hoa, hoa thành thường thật.
Tuy nhiên hình như không áp dụng được với Tiếng Việt có dấu

Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn Hạ Vàng , nhunguyet0103
#6
Mình có một hàm chuẩn hóa sau: Mấy bác cho ý kiến:
Mã:
Public Function chuanchuoi(st As String) As String
Dim s1 As String
s1 = Trim(st)
Do While InStr(1, s1, "  ")
    s1 = Replace(s1, "  ", " ")
Loop
Dim Chuoi() As String
Chuoi = Split(s1, " ")
Dim i As Byte
Dim s As String
For i = 0 To UBound(Chuoi)
    s = s & UCase(Left(Chuoi(i), 1)) & Right(Chuoi(i), Len(Chuoi(i)) - 1) & " "
Next
chuanchuoi = s
End Function
Chữ ký của nhattiensinh Hãy chia sẻ kinh nghiệm cùng mình trên HeartThuThuatAccess nhé! Chúc vui vẻ rose
Reply
Những người đã cảm ơn haquocquan , Noname , nhunguyet0103
#7
(14-05-11, 01:09 PM)Noname Đã viết:
(14-05-11, 11:41 AM)quanghoasla Đã viết: mình có một cách hay hơn không phải dung code vba. bạn có thể định dạng chuyển chữ thường thành chữ hoa như sau.
Sau khi ban tao trường name với định dạng( format: >= biến chữ thường thành chữ hoa: ví dụ:tôi là hoa= HOA, và dùng format:<= biến chữ hoa tành chữ thường: KẾT QUẢ = Kết quả.

---------------- Các bạn thử nhé. đây là ví dụ mình làm: http://www.mediafire.com/?bt1n4cod58gr1q4

Cách của bạn hay quá, đúng là khi ta đặt ở ô format dấu: > hoặc < thì nó biến thường thành hoa, hoa thành thường thật.
Tuy nhiên hình như không áp dụng được với Tiếng Việt có dấu.
Vậy theo bác phải làm thế nào?
Chữ ký của vtdcomputer Xin chào, mình là vtdcomputer, Tham gia http://thuthuataccess.com/forum từ ngày 14-05 -11.
Reply
Những người đã cảm ơn
#8
(16-12-11, 06:08 PM)nhattiensinh Đã viết: Mình có một hàm chuẩn hóa sau: Mấy bác cho ý kiến:
Mã:
Public Function chuanchuoi(st As String) As String
Dim s1 As String
s1 = Trim(st)
Do While InStr(1, s1, "  ")
    s1 = Replace(s1, "  ", " ")
Loop
Dim Chuoi() As String
Chuoi = Split(s1, " ")
Dim i As Byte
Dim s As String
For i = 0 To UBound(Chuoi)
    s = s & UCase(Left(Chuoi(i), 1)) & Right(Chuoi(i), Len(Chuoi(i)) - 1) & " "
Next
chuanchuoi = s
End Function

Cái này làm thế nào, gắn vào đâu, Bạn cho biết với?

(31-12-10, 01:00 AM)haquocquan Đã viết: Có một số bạn hỏi: cách sử dụng như thế nào, đặt hàm ở đâu,....
Xin mời xem file DEMO: module1, tblDanhsach, qryDanhsach
http://www.mediafire.com/?2sm41fcxdmudfmq

Cảm ơn chia sẽ của bạn. Nhưng nếu mình muốn: trong fomrs/ khi bấm xong tên/ nhấn enter/ thì lập tức nó chuyển thành chử In hoa đầu từ, hay in hoa toàn bộ trong ô name/

(14-05-11, 11:41 AM)quanghoasla Đã viết: mình có một cách hay hơn không phải dung code vba. bạn có thể định dạng chuyển chữ thường thành chữ hoa như sau.
Sau khi ban tao trường name với định dạng( format: >= biến chữ thường thành chữ hoa: ví dụ:tôi là hoa= HOA, và dùng format:<= biến chữ hoa tành chữ thường: KẾT QUẢ = Kết quả.

---------------- Các bạn thử nhé. đây là ví dụ mình làm: http://www.mediafire.com/?bt1n4cod58gr1q4

Cảm ơn chia sẽ rất có ích của bạn. Nhưng nó chỉ đúng khi dùng tiếng anh, chứ tiếng việt có dấu thì chịu bạn ơi, Bạn có cách nào khác không?
Chữ ký của danhxetnghiem Đừng bao giờ so sánh đoạn đầu của bạn với đoạn giữa của người khác
Reply
Những người đã cảm ơn
#9
sử dụng hàm Inhoachucaidau của bác Noname hay chuanchuoi của nhattiensinh đều được
-hàm Inhoachucaidau
+ có một lỗi nho nhỏ là thiếu móc ")" ở dòng temp = CStr(LCase(Word) sửa lại là: temp = CStr(LCase(Word))
+ Nên dùng Unicode dựng sẵn vì nếu dùng Unicode tổng hợp thì chữ "n" luôn được chuyển thành "N" (Bác Noname xem sửa giúp ACE với nghen)

-VD: Muốn chuyển txtTEN sang in hoa chử cái đầu sau khi nhập bạn làm như sau:
Mã:
Private Sub txtTEN_AfterUpdate()
    Me.txtTEN = Inhoachucaidau(txtTEN)
End Sub

mình làm trên file DEMO LOCK RECOR:

Download File DEMO (388KB)

->Bổ sung thêm chút:
-Nếu muốn chuyển hết sang in hoa thì dùng hàm Ucase(chuỗi ký tự) (như bác Noname đã nói ở trên )
VD: Me.txtDIACHI = UCase(txtDIACHI)
Chữ ký của MatTroiNguQuen Thời gian nước chảy... da mòn
Ngủ quên một chốc thấy còn bộ xương!
Reply
Những người đã cảm ơn danhxetnghiem


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  [Hàm] Demo hàm nén mọi file thành file *.zip maidinhdan 4 898 20-09-15, 11:57 AM
Bài mới nhất: conmeocon
  Hàm chuyển giá trị trong cột thành chuỗi cách nhau dấu phẩy Noname 24 13,152 15-02-15, 08:14 PM
Bài mới nhất: thucgia
  [Hàm] Hàm chuyển từ có dấu sang không dấu trong Tiếng Việt Xuân Thanh 3 1,061 15-04-14, 09:41 AM
Bài mới nhất: vulhu06
  Hàm chuyển chuỗi Unicode tiếng Việt thành Chuỗi mã Unicode trong VBA Noname 12 7,949 08-04-14, 08:17 PM
Bài mới nhất: vulhu06
  Hàm tách chuỗi cách nhau dấu phẩy thành cột Xuân Thanh 2 1,723 27-06-13, 04:05 PM
Bài mới nhất: Xuân Thanh

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ