-
02-03-2010, 11:46 PM #1
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Chạy một đoạn code được lưu trong biến biến
Chạy một đoạn code được lưu trong biến
Tôi có các câu lệnh VBA được lưu dưới dạng text trong biến. Các bạn có cách nào để cho thực thi các lệnh này không?View more random threads:
- Vô hiệu hóa nút Close của ứng dụng Access
- Setup khổ giấy máy in kim
- Cơ sở dữ liệu Access nhiều người người dùng
- Nhờ các cao nhân giúp đỡ cách chạy phần mềm kế toán Access.
- Làm sao để INSERT INTO giá trị DATE trong ACCESS?
- Lấy Ngày làm việc khi đăng nhập
- Làm thế nào để lấy dữ liệu phát sinh cuối cùng trong Table!
- chuyển font Vntime sang unicode
- ACCESS: tìm kiếm và xóa file bằng VBA!
- giúp tắt chế độ báo của access!
-
02-04-2010, 03:35 AM #2
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Ðề: Chạy một đoạn code được lưu trong biến biến
Nếu các câu lệnh của bạn đơn thuần lấy về 1 giá trị số hoặc chuỗi, bạn có thể dùng hàm Eval(StringExp ) để thực thi 1 biểu thức lưu dưới dạng text. Biểu thức này có thể bao gồm các function,hằng, biến...
Ví dụ:
bạn thử thế này xem:
Mã:Dim x as String x= "1 +2 +3 +4" Msgbox Eval(x)
Mã:x = "Ucase(""abcde"")" MsgBox Eval(x)
Chúc may mắn
-
02-04-2010, 03:03 PM #3
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Ðề: Chạy một đoạn code được lưu trong biến biến
Cảm ơn LoveBlue nhiều! Tuy nhiên hàm Eval chỉ trả về giá trị của một biểu thức lưu dưới dạng một chuỗi chứ không chạy được 1 dòng code VBA.
VD: Mình có biến st= "Docmd.OpenForm 'frmMain'"
hoặc st = "If a > B then Max = a"
Mình muốn thực thi dòng code lưu trong biến st
-
02-04-2010, 09:59 PM #4
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Ðề: Chạy một đoạn code được lưu trong biến biến
Bạn có thể nói mục đích của bạn là gì không? Mình có thể tìm giải pháp khác! Ví dụ các dòng Code VBA thì bạn nên lưu trong các Module ở dạng sub hay function. Như vậy Access sẽ không mất công dịch lại cho những lần chạy kế tiếp.
Tham khảo:
http://thuthuataccess.blogspot.com/2010/02/tinh-gia-tri-1-cong-thuc-luu-trong.html
-
02-05-2010, 08:39 PM #5
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Ðề: Chạy một đoạn code được lưu trong biến biến
Mình có ý tưởng thế này: Thiết kế một table Menu. Các Menu Item và các dòng lệnh tương ứng để thực hiện khi NSD chọn menu sẽ được lưu trong table này. Khi khởi động chường trình, Toàn bộ menu sẽ được load từ table này. Mục đích là để tiện cho việc nâng cấp, bố trí giao diện chương trình và tùy biến cho từng người dùng.
-
02-06-2010, 03:46 PM #6
Silver member
- Ngày tham gia
- Sep 2015
- Bài viết
- 52
Ðề: Chạy một đoạn code được lưu trong biến biến
Đây là đoạn code mà bạn cần:
Option Compare Database
Private Type STARTUPINFO
cb As Long
lpReserved As String
lpDesktop As String
lpTitle As String
dwX As Long
dwY As Long
dwXSize As Long
dwYSize As Long
dwXCountChars As Long
dwYCountChars As Long
dwFillAttribute As Long
dwFlags As Long
wShowWindow As Integer
cbReserved2 As Integer
lpReserved2 As Long
hStdInput As Long
hStdOutput As Long
hStdError As Long
End Type
Private Type PROCESS_INFORMATION
hProcess As Long
hThread As Long
dwProcessID As Long
dwThreadID As Long
End Type
Private Declare Function WaitForSingleObject Lib "kernel32" (ByValhHandle As Long, ByVal dwMilliseconds As Long) As Long
Private Declare Function CreateProcessA Lib "kernel32" (ByVal lpApplicationName As String, _
ByVal lpCommandLine As String, _
ByVal lpProcessAttributes As Long, _
ByVal lpThreadAttributes As Long, _
ByVal bInheritHandles As Long, _
ByVal dwCreationFlags As Long, _
ByVal lpEnvironment As Long, _
ByVal lpCurrentDirectory As String, _
lpStartupInfo As STARTUPINFO, _
lpProcessInformation As PROCESS_INFORMATION) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long
Private Const NORMAL_PRIORITY_CLASS = &H20&
Private Const INFINITE = -1&
Private Const SW_MINIMIZE = 6
Private Const STARTF_USESHOWWINDOW = &H1
Private Const SW_SHOWMINIMIZED = 2
Private Function ExecCmd(cmdline$)
Dim proc As PROCESS_INFORMATION
Dim start As STARTUPINFO
' Initialize the STARTUPINFO structure:
start.cb = Len(start)
'set ******* info to window minimized.
start.dwFlags = STARTF_USESHOWWINDOW
start.wShowWindow = 6 '"SW_MINIMIZE"
' Start the shelled application:
ret& = CreateProcessA(vbNullString, cmdline$, 0&, 0&, 1&, _
NORMAL_PRIORITY_CLASS, 0&, vbNullString, start, proc)
' Wait for the shelled application to finish:
ret& = WaitForSingleObject(proc.hProcess, INFINITE)
Call GetExitCodeProcess(proc.hProcess, ret&)
Call CloseHandle(proc.hThread)
Call CloseHandle(proc.hProcess)
ExecCmd = ret&
End Function
-
02-06-2010, 05:05 PM #7
Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 0
Ðề: Chạy một đoạn code được lưu trong biến biến
sao đoạn code của bạn tôi lấy về không chạy được nhỉ
st$ = "msgbox 1"
a = ExecCmd(st$)
cách gọi hàm đó có gì sai không
rất mong sự trợ giúp của bạn
-
11-16-2010, 04:32 AM #8
Silver member
- Ngày tham gia
- Feb 2016
- Bài viết
- 1
Ðề: Chạy một đoạn code được lưu trong biến biến
Tôi cũng thử đoạn code của bác mà không được. Có bác nào có chiêu hay hơn không?
Tương tự như các sản phẩm bao cao su bình thường, thay vì được sinh sản bằng chất liệu mủ cao su tự nhiên thì bcs đôn dên lại có chất liệu silicone y tế đảm bảo an toàn cho da, không gây kích ứng khi...
Bao đôn dên có rung đầu nối dài thêm chim của đàn ông thêm 6cm