Thủ Thuật Access

Thế Giới Thủ Thuật với Access

2010 in review

Posted by Noname on 02.01.2011

The stats helper monkeys at WordPress.com mulled over how this blog did in 2010, and here’s a high level summary of its overall blog health:

Healthy blog!

The Blog-Health-o-Meter™ reads Wow.

Crunchy numbers

Featured image

A helper monkey made this abstract painting, inspired by your stats.

About 3 million people visit the Taj Mahal every year. This blog was viewed about 32,000 times in 2010. If it were the Taj Mahal, it would take about 4 days for that many people to see it.

In 2010, there were 43 new posts, growing the total archive of this blog to 131 posts. There were 8 pictures uploaded, taking up a total of 221kb.

The busiest day of the year was October 13th with 251 views. The most popular post that day was Truyền thông số từ Combobox.

Where did they come from?

The top referring sites in 2010 were google.com.vn, vn.360plus.yahoo.com, search.conduit.com, minhchau.vina69.com, and thuthuataccess.blogspot.com.

Some visitors came searching, mostly for thu thuat access 2003, thu thuat access, thủ thuật access, thuthuataccess, and lệnh forms! form! combo box.

Attractions in 2010

These are the posts and pages that got the most views in 2010.

1

Truyền thông số từ Combobox November 2009
5 comments

2

Tạo Dòng Chữ chạy trên form November 2009
2 comments

3

Đóng gói chương trình Access December 2009
6 comments

4

Hướng Dẫn Tạo Menu Trong Access December 2009
7 comments

5

Import Dữ Liệu Từ Excel Vào Access December 2009
7 comments

Posted in Khác | Leave a Comment »

MS Access- Toàn tập

Posted by Noname on 10.12.2010

MS Access- Toàn tập.

Posted in Giáo trình | 1 Comment »

Hàm chuyển giá trị trong cột thành chuỗi cách nhau dấu phẩy

Posted by Noname on 05.12.2010

Hàm chuyển giá trị trong cột thành chuỗi cách nhau dấu phẩy.

Posted in Khác | Leave a Comment »

Cách tạo workgroup và hệ phân quyền

Posted by Noname on 01.12.2010

Cách tạo workgroup và hệ phân quyền.

Posted in Giáo trình | Leave a Comment »

Tạo Label nhấp nháy

Posted by Noname on 22.09.2010

Share by : hungtano – KHPT
Hỏi:
Tôi có 1 form. Tôi muốn khi người dùng mở form này thì thanh tiêu đề của form (form caption) nhấp nháy dòng chữ : dữ liệu đã bị khóa ! Tôi phải làm sao ?

Đáp:
Bạn dùng 2 sự kiện của form: Open và Timer

Private Sub Form_Open(Cancel As Integer)
         Me.Caption = "Dữ liệu đã bị khóa !"
         Me.TimerInterval = 600
End Sub

Private Sub Form_Timer()
    If Me.Caption = Space(1) Then
          Me.Caption = "Dữ liệu đã bị khóa !"
    Else
          Me.Caption = Space(1)
    End If
End Sub

Mời thảo luận thêm tại: http://thuthuataccess.co.cc/forum/thread-231.html

Posted in Form | Leave a Comment »

Tùy biến Hàm làm tròn-round thành roundup,rounddown. Các hàm Int, Fix

Posted by Noname on 14.09.2010

Tùy biến Hàm làm tròn-round thành roundup-rounddown. Các hàm Int, Fix

Như các bạn biết, Ms Access chỉ cung cấp mỗi hàm làm tròn là hàm Round. Điều này gây 1 số bất tiện khi ta có nhu cầu Round-up, round-down.
Nhân đây, No xin giới thiệu luôn 2 hàm liên quan là hàm Int và hàm Fix:

1/ hàm Round(Số, phần làm lẻ) (Click to Hide)
Ý nghĩa, trả về 1 số làm tròn với quy định chữ số thập phân “phần làm lẻ”
Ví dụ:
Round(11.55 , 0) =>1
Round(11.55,1 ) =>11,6

hàm round không chấp nhận phần làm lẻ là số âm. Vì vậy bạn không thể làm tròn tới hàng chục. Để làm được việc này, bạn cần tham khảo phần sau.

2/ hàm Fix và hàm Int: (Click to Hide)
Cả hai hàm đều trả về phần nguyên của một số. Tuy nhiên khác nhau là nếu phần số xem xét là số âm, thì int sẽ trả về số nguyên âm kế sau số đó. Phần fix trả về số nguyên âm số trước số đó.
Ví dụ:
Int(11,55) =>11
Fix(11,55)=>11
Int(-11,55)=>-11
Fix(-11,55)=> -12
3/ Làm thế nào gọi hàm Roundup, rounddown và làm tròn hàng chục hàng trăm trong Access. (Click to Hide)
3.1 Làm tròn lên và làm tròn xuống. (rounddown và roundup)

Ta phát biểu như sau:
RoundDown
Round(số -0.x5 , n)

Roundup
Round(số +0.x5 , n)
Trong đó x5 là các số 0 có số lượng là n
n là dãy số cần lấy sau dấu thập phân
Round(11.55,1) => 11.6 ’round
Round((11.55 -0,05) ,1) =>11.5 ’rounddown
Round(11.44 ,1) =>11.4 ’round
Round(11.44 + 0.05 ,1) =>11.5 ’roundup

3.2 Làm tròn đến số hàng chục, hàng trăm
hàm round không chấp nhận đối số là số âm, nên Để làm tròn đến số hàng chục, ta làm như sau:
Round(số/10 , 0)*10

Tương tự làm tròn tới hàng trăm:
Round(số /100 ,0)*100

Ví dụ:
Round(155 / 10, 0) * 10 =>160
Round(155 / 100, 0) * 100 =>200

Tương tự cho hàng ngàn, hàng chục ngàn! big hug

Chúc may mắn
__________________________________________________
Thảo luận thêm tại:http://thuthuataccess.com/forum/thread-214-post-384.html

Posted in Function | Leave a Comment »

Tùy chọn liên kết lại các table từ file data có password

Posted by Noname on 11.09.2010

Tips này hướng dẫn chúng ta cập nhật lại link cho table khi chuyển file data có password sang một vị trí khác, hoặc chúng ta có nhiều file data giống nhau password và cấu trúc, chỉ khác nhau nội dung.
Chúng ta không cần phải khai báo lại password mà chỉ nhập password ở lần link lần đầu tiên (khi thiết kế)
(relink table from Database Access with password)
Writen by: Noname
Writen Site: http://thuthuataccess.co.cc/forum
Please do not removed my info if using or share this code

Để sử dụng được code này, bạn vui lòng khai báo thư viện Office.

– Đầu tiên, bạn tạo 1 form mới, trên form,
+vẽ 1 textbox đặt tên là txtPath. dùng để nhập đường dẫn file data.
+ vẽ 1 nút nhấn, với caption là … dùng để chọn file data, và ghi kết quả.
Vẽ 1 nút nhấn với caption là refresh link để thực thi hành động cập nhật lại đường dẫn table
[Image: chonfiledata.png]

Trong ví dụ đính kèm dưới đây, bạn có 2 file đính kèm là data3 và data4 với password đều là 123456.
Đầu tiên, bạn link table theo cách link thông thường, nó sẽ hỏi password của bạn, bạn nhập password bình thường, chọn các table để liên kết. Và kể từ đây bạn không cần phải nhập password thêm lần nào nữa.

Bạn tạo 1 module mới và copy các đoạn code sau vào:

Đoạn code này cho phép ta gọi hàm getfile để tìm tới file data

Code:
Function getFile(Tit As String, formatName As String, formatType As String)
Dim dlgOpen As FileDialog
Set dlgOpen = Application.FileDialog(msoFileDialogOpen)
With dlgOpen
    .Title = Tit
    .Filters.Clear
    .Filters.Add formatName, formatType
    .AllowMultiSelect = False
    result = .Show
    If (result <> 0) Then
getFile = Trim(dlgOpen.SelectedItems.Item(1))
End If
End With
End Function

Đoạn code này lấy về password lưu trong hệ thống:

Code:
' Lấy về password của lần connect trước
Function getconnect(T As String) As String
Dim con As String
con = DLookup("[Connect]", "MSysObjects", "[name]='" & T & "'")
getconnect = con
End Function

Đoạn code này link table với đường dẫn và password có sẵn

Code:
'Liên kêìt table
Sub LinkTable(T As String, path As String, connectString As String)
Dim tblLink As TableDef
Dim DBlink As Database
Set DBlink = OpenDatabase(path, False, False, connectString)
On Error GoTo Err
DoCmd.DeleteObject acTable, T
Err:
DoCmd.TransferDatabase acLink, "Microsoft Access", path, acTable, T, T
'DBlink.Close
Set DBlink = Nothing
End Sub

Đoạn code này kiểm tra các table nào là liên kết, nếu nó là liên kết thì sẽ tiến hành liên kết theo đường dẫn mới

Code:
Sub refreshLinkTable(path As String)
'Writen by:Noname
'Writen site: http://thuthuataccess.com/
'Please do not remove my info if using or share this modules
Dim r As Recordset
Dim s As String
s = "SELECT ForeignName FROM MSysObjects WHERE ForeignName Is Not Null"
Set r = CurrentDb().OpenRecordset(s)
If r.RecordCount > 0 Then
r.MoveLast
For i = 0 To r.RecordCount - 1
    LinkTable r(0), path, getconnect(r(0))
    r.MovePrevious
Next i
End If
r.Close
Set r = Nothing
End Sub

Giờ trong hành động nhấn chuột của nút Open, ta nhập code sau vào:

Code:
Private Sub cmdOpen_Click()
txtPath.Value = getFile("Select Data File", "data file", "*.mdb")
End Sub

Hành động nút refresh link ta nhập code sau vào:

Code:
Private Sub cmdreLink_Click()
refreshLinkTable Me.txtPath
MsgBox "link table thanh cong"
End Sub

Xong rồi đấy!
Chúc thành công.
Demo
Để thảo luận thủ thuật này, vui lòng ghé vào diễn đàn:
http://thuthuataccess.com/forum/thread-199.html

Posted in Thủ Thuật | Leave a Comment »

Tham chiếu các đối tượng trên form con

Posted by Noname on 06.09.2010

Hỏi:
Mình có 3 form: form ong noi, form cha, form cháu
form cha là subform của form ong noi, form cháu là subform của form cha
Một query mà có điều kiện là từ 1 textbox thuộc form cháu thì diều kiện đó cú pháp ghi như thế nào? Đại ý là:
vi dụ:
Nếu textbox1 thuộc From ông nội cú pháp: forms!ongnoi.textbox1
Nếu textbox2 thuộc form Cha cú pháp: forms!ongnoi!Cha.form.textbox2
Nếu textbox3 thuộc from cháu thì cú pháp như thế nào?
Xin cảm ơn các bài trả lời của các bạn

Đáp:
Có một mánh nhỏ thế này, bạn vào khung soạn query, tạo 1 query mới. Sau đó dùng công cụ Build, browser tới form đang load.
Tất tần tật đối tượng sẽ hiện ra mặc sức cho bạn lựa chọn! Và cú pháp bạn cũng chả phải quan tâm làm gì, cứ copy mà dùng! big green

Trở lại ví dụ của bạn, textbox trên form cháu của bạn được gọi như sau:
Code:

Forms![ongnoi]![cha].Form![chau].Form![Text0]

Thảo luận thêm chủ đề này : http://thuthuataccess.co.cc/forum/thread-188.html

Posted in Form | 1 Comment »

Tùy chọn file Data để liên kết đến

Posted by Noname on 28.08.2010

Hỏi: Hiện tại mình đã viết xong một chương trình kế toán phục vụ cho công việc của mình. Có một điều mình muốn áp dụng cho nhiều doanh nghiệp, mỗi doanh nghiệp một file .mdb thấy không hay lắm. Bây giờ mình muốn : trong thư mục D:\KeToan có file ChuongTrinh.mdb (Là chương trình chính), mỗi một doanh nghiệp dữ liệu chứa riêng một file mdb khác ví dụ như Data01, Data02, Data03… (Chỉ có Table thôi). Mình muốn các bạn giúp mình thiết kế một form (trước khi giao diện của chương trình hiện lên) form này hiện lên danh sách các Data có trong thư mục cùng với ChuongTrinh.mdb để cho mình chọn Data… khi đó chương trình sẽ tự liên kết đến Data mà mình đã chọn.
Đáp:
Để làm được như bạn, đầu tiên bạn phải làm được những việc sau:
1/ Liệt kê tên những table nào cần liên kết.
2/Lấy về đường dẫn file Data cũa bạn
3/ Gọi 1 đoạn code cho phép bạn xóa table đang link, và link lại tới file mới!

Bước 1: bạn tự viết ra giấy nhé
Bước 2:
Để chọn được file, bạn phải khai báo bộ thư viện của Office bằng cách vào cửa sổ VBA, Menu Tool–> references, chọn Microsoft Office 11.0 library. (chọn 10.0 với AccessXP).
[Image: OfficeLib.JPG]

Tạo tạo 1 module và copy 2 đoạn code sau vào:

Code 1 dùng gọi hộp chọn file:

Function getFile(Tit As StringformatName As StringformatType As String)Dim dlgOpen As FileDialog
Set dlgOpen 
Application.FileDialog(msoFileDialogOpen)With dlgOpen
    
.Title Tit
    
.Filters.Clear
    
.Filters.Add formatNameformatType
    
.AllowMultiSelect False
    result 
= .Show
    
If (result <> 0Then
getFile 
Trim(dlgOpen.SelectedItems.Item(1))End IfEnd With

End Function 

Code 2: Dùng Relink table lại

Sub LinkTable(As Stringpath As String)' kiêÒm tra table, nêìu coì rôÌi thiÌ xoìa ði
On Error GoTo Err

DoCmd.DeleteObject acTable, T
Err:
'link lai tablelink moi
DoCmd
.TransferDatabase acLink"Microsoft Access"pathacTableTT
End Sub 

Xong phần chuẩn bị code, giờ bạn tạo 1 Form, trên form vẽ 1 textbox tên là txtPath, 1 nút nhấn tên là cmdOpen, 1 nút nhấn tên là cmdreLink

Sự kiệnc click của cmdOpen nhập như sau:

Private Sub cmdOpen_Click()txtPath.Value getFile("Select Data File""data file""*.mdb")End Sub 

Sự kiện click của cmdOpen, nhập vào như sau:

Private Sub cmdreLink_Click()LinkTable "tblKhachhang"txtPath
LinkTable 
"tblTiendien"txtPath
LinkTable 
"tblTienNuoc"txtPath
  'Sửa tên các table tương ứng thành của bạn
msgbox 
" Đã nhập thành công dữ liệu  file " txtpath
End Sub 

[Image: chonfiledata.png]

Demo Download:

Để thảo luận thêm về chủ đề này, mời bạn vào : http://thuthuataccess.co.cc/forum/thread-154-post-222.html

Posted in Table, Thủ Thuật | Leave a Comment »

Lập diễn đàn Thuthuataccess.co.cc

Posted by Noname on 22.08.2010

Noname chào các anh chị!
Cảm ơn các anh chị thời gian qua đã theo dõi và chia sẻ kinh nghiệm cùng Blog Thủ Thuật Access.
http://thuthuataccess.blogspot.com

Tuy nhiên, có nhiều thắc mắc mà trong phạm vi một blog không cho phép chúng ta chia sẻ kinh nghiệm, học hỏi và phát triển các vấn đề liên quan đến MS Access. Vì vậy, hôm nay Noname xin lập thêm 1 diễn đàn để hỗ trợ, chia sẻ cho các anh chị tốt hơn.
Diễn đàn hiện tại chỉ là thử nghiệm, nên tên miền và host free. Đợi sau này nếu hoạt động tốt, tạo được sân chơi cho các Accessor chúng ta, đồng thời có kinh phí thì No sẽ nghĩ đến chuyện mua tên miền chính thức và Host chính thức!
Tên miền hiện tại của diễn đàn:
http://www.thuthuataccess.com

Tên miền phụ:
http://thuthuataccess.tk

Lưu ý:
– Vì là tên miền và host miễn phí, nên khả năng mất bài viết của quý vị là rất cao. Vì vậy, nếu bài nào thật sự thấy giá trị và tâm huyết, các anh chị nên lưu lại trên máy nhằm giảm rủi ro.
– Một lưu ý nữa là vì host miễn phí nên dung lương có giới hạn, các anh chị nên post file đính kèm lên:
http://www.mediafire.com/ hoặc 1 host miễn phí khác rồi chia sẻ link
Hình ảnh nên post trên http://photobucket.com hoặc 1 trang share hình nào đó rồi chèn vào forum!

Vì đây chỉ là forum thử nghiệm, đang trong quá trình xây dựng nên các anh chị thẳng thắng đóng góp ý kiến vào : http://www.thuthuataccess.com/forum/forum-3.html để diễn đàn hoạt động tốt hơn!

Thân mến!

Noname

Posted in Khác | Leave a Comment »