Tìm thủ thuật nhanh hơn với chức năng tìm trong Blog

9/22/10

Tạo Label nhấp nháy

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

9/17/10

Tùy biến report: Thêm/bớt cột trong report Access

Hỏi: Làm sao để ẩn các cột số liệu bằng 0, và chỉ hiện các cột có phát sinh số liệu
Đáp:
Mỗi đối tượng có thuộc tính left, visible.
Đầu tiên bạn tạo tất cả. Và đặt left của các text, label của các cột cần ẩn/ hiện là 0, visible là false.
Tạo thêm 1 biến là vitri.

vitri = [cột đang hiện].left + [cột đang hiện].width
Bạn Kiểm tra sum của cột kế tiếp, nếu <>0 thì
left = vitri
vitri =[cột kế].left +[cột kế].Width
[cột kế].Visible=true
end if

Thảo luận thêm tại:http://thuthuataccess.com/forum/index.php

Gọi Form Chờ khi thực hiện tập lệnh !

Hỏi:Em đặt một nút command button, trong đó chạy một số câu lệnh và phải mất khoảng 5 phút.
Trong quá trình thực hiện lệnh, em muốn hiện lên màn hình dòng chữ:
" Đang thực hiện công việc, xin vui lòng chờ trong giây lát"

9/14/10

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

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

9/11/10

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

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.com/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

9/6/10

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

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