Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
cách lưu code trong table
#1
Cho em hỏi lưu code trong table thì phải làm sao. Code cũng như là một đoạn văn xuống dòng vậy.
Chữ ký của Nguyễn Văn Phẩm Xin chào, mình là Nguyễn Văn Phẩm, Tham gia http://thuthuataccess.com/forum từ ngày 11-07 -13.
Reply
Những người đã cảm ơn
#2
Bạn viết rõ hơn một chút thì câu trả lời mới rõ ràng được. Ý bạn (1) Chỉ cần đọc code và lưu vào bảng hay là (2) Dùng code lưu trong bảng để chạy?
Nếu là 1 thì đơn giản. Bạn thậm chí có thể tạo ra code của ứng dụng từ các đoạn code đó để chạy sau này.
Nếu là 2 thì không được vì code mà chúng ta nhìn thấy không phải là code máy tính dùng để chạy chương trình. Trước khi chạy đoạn code ta soạn, VBA sẽ dịch sang mã máy để máy tính thực hiện trong đó có tham chiếu đến code mà ta soạn trên màn hình VBIDE bằng con trỏ thực thi để người dùng Debug cho tiện. Mỗi khi bạn sửa, VBA đề dịch lại.
Vì thế nếu muốn làm như bạn nói, chương trình của bạn sẽ luôn bị dịch đi dịch lại và điều này làm cho bạn mất hết tiến trình, các giá trị biến...vv
Và cũng không mấy ai thích làm cách này, trừ trường hợp họ muốn, ứng dụng của họ sẽ thay đổi theo quyền sử dụng để cắt bớt một số đoạn mã không cần thiết.

KẾT LUẬN - Không nên sử dụng tiếp cận 2 này trong chương trình của mình thì hơn.
Đoạn code trong file đính kèm của tôi sau đây mô phỏng cách tạo form, code trên Access:

1. Hàm lấy mã nguồn của một đối tượng
Mã PHP:
Function GetCodeEvent(strModuleName As StringstrProcName As String) As String
    Dim mdl 
As Module
    Dim lngStartLine 
As LonglngBodyLine As Long
    Dim lngCount 
As LonglngEndProc As Long

    
' Open specified Module object.
    DoCmd.OpenModule strModuleName
    ' 
Return reference to Module object.
    
Set mdl Modules(strModuleName)
    
' Count lines in procedure.
    On Error GoTo Err_Trap
    lngCount = mdl.ProcCountLines(strProcName, vbext_pk_Proc)
    ' 
Determine start line.
    
lngStartLine mdl.ProcStartLine(strProcNamevbext_pk_Proc)
    
' Determine body line.
    lngBodyLine = mdl.ProcBodyLine(strProcName, vbext_pk_Proc)
    Debug.Print
    
    ' 
Determine line number of last line in procedure.
    
lngEndProc = (lngBodyLine lngCount 1) - Abs(lngBodyLine lngStartLine)

    
' Print all lines in body of procedure.
    GetCodeEvent = mdl.Lines(lngBodyLine, (lngEndProc - lngBodyLine) + 1)
    Debug.Print GetCodeEvent
    Exit Function
Err_Trap:
    Select Case Err.Number
    Case 35:
        GetCodeEvent = ""
    Case Else
        MsgBox Err.Number & Err.Description
    End Select
End Function 
2. Thủ tục tạo mã nguồn từ CSDL
Mã PHP:
Function ObjectCreateEvent(frmName As StringiProcName As StringiProcDetails As String) As Boolean
    Dim frm 
As Formctl As Controlmdl As Module
    Dim lngReturn 
As Long
    
    On Error 
GoTo Error_ClickEventProc
    
    DoCmd
.OpenForm frmNameacDesign
    
    
' Return reference to form module.
    Set mdl = Forms(frmName).Module
    ' 
Add event procedure.
    
lngReturn mdl.CreateEventProc(iProcNamefrmName)
    
' Insert text into body of procedure.
    mdl.InsertLines lngReturn + 1, iProcDetails
    ObjectCreateEvent = True
    ' 
Return reference to form module.
    
DoCmd.Save acFormfrmName
    
Exit Function
    
Exit_ClickEventProc:
    Exit Function

Error_ClickEventProc:
    
MsgBox Err " :" Err.Description
    ObjectCreateEvent 
False
    Resume Exit_ClickEventProc
End 
Function 
Muốn thao tác với trình soạn thảo code, bạn phải đặt thêm tham chiếu đến bộ thi viện Microsoft Visual Basic for Applications Extenbility nhé


File đính kèm
.txt   code_creation.txt (Kích cỡ: 39.62 KB / Tải về: 3)
Chữ ký của paulsteigel ====================
Quốc gia hưng vong
Thất phu hữu trách
====================
Reply
Những người đã cảm ơn
#3
Có phải bạn muốn viết code cho Form, ... và lưu trữ vào Table để mỗi khi cần thì gọi ra từ table ra không ?
Chữ ký của Minh Tiên -----------------------------------------------
Đường tuy ngắn, không đi không đến
Việc tuy nhỏ, không làm không nên.
                                           Tuân Tử
-----------------------------------------------
Reply
Những người đã cảm ơn
#4
Mình chỉ đơn giản là viết một chương trình lưu trữ các hàm trong access trong đó có một đoạn code ví dụ cho hàm đó thôi
Chữ ký của Nguyễn Văn Phẩm Xin chào, mình là Nguyễn Văn Phẩm, Tham gia http://thuthuataccess.com/forum từ ngày 11-07 -13.
Reply
Những người đã cảm ơn
#5
(13-07-13, 08:00 AM)Nguyễn Văn Phẩm Đã viết: Mình chỉ đơn giản là viết một chương trình lưu trữ các hàm trong access trong đó có một đoạn code ví dụ cho hàm đó thôi

Theo yêu cầu này của bạn thì cách làm cũng khá đơn giản.
1. Bạn tạo một bảng trong đó trường chứa code bạn để kiểu Memo;
2. Viết một thủ tục lấy code từ module chứa các hàm ví dụ của bạn hoặc tự bạn dán code của hàm vào trường memo đó;

Đơn giản thế thôi!
Chữ ký của paulsteigel ====================
Quốc gia hưng vong
Thất phu hữu trách
====================
Reply
Những người đã cảm ơn Noname , Che_Guevara
#6
Như thế mình thấy nó thẳng một hàng liệu khi đưa vào trong textbox nó có xuống dòng được không?
Chữ ký của Nguyễn Văn Phẩm Xin chào, mình là Nguyễn Văn Phẩm, Tham gia http://thuthuataccess.com/forum từ ngày 11-07 -13.
Reply
Những người đã cảm ơn
#7
(14-07-13, 03:03 PM)Nguyễn Văn Phẩm Đã viết: Như thế mình thấy nó thẳng một hàng liệu khi đưa vào trong textbox nó có xuống dòng được không?

Xuống chứ, việc xuống hàng hay không là do trong văn bản có ký tự xuống dòng (vbCrlf hoặc VbLf) không. Bạn cần thiết lập thuộc tính của textbox cho phép xuống dòng và có thanh cuộn nhé.
Bạn thử đi, có gì lại chia sẻ tiếp.
Chữ ký của paulsteigel ====================
Quốc gia hưng vong
Thất phu hữu trách
====================
Reply
Những người đã cảm ơn


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  [Help] [Hàm] Lấy dữ liệu giữa 2 file Access có cùng cấu trúc table trungminh 22 1,270 08-10-16, 12:08 AM
Bài mới nhất: maidinhdan
  [Lỗi] Hàm Dsum bi lôi khi sư dụng trong query Phung Duc 1 178 13-09-16, 03:44 PM
Bài mới nhất: ongke0711
  [Hỏi] Chữ IN HOA trong table diepvien1989 5 309 08-09-16, 10:16 PM
Bài mới nhất: Nguyen Hoang Diep
  [Help] CODE thay the Query Phung Duc 2 207 07-09-16, 09:23 PM
Bài mới nhất: maidinhdan
  [Help] So sánh 2 Table Lấy ra dữ liệu trùng nhau sang 1 table có sẳn khác thdanh 21 1,684 19-07-16, 04:21 PM
Bài mới nhất: maidinhdan

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ơ