-
02-03-2010, 11:46 PM #1Junior 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:
- Quản lý mua bán hàng - Phần 4: Thiết kế form
- Nút OfficeLink bị disable
- Giúp sinh mã quản lý cho từng sản phẩm
- Giúp mình mở file database này với?
- Import hoặc link data từ 1 host khác như thế nào?
- SQL có chứa Function
- Học Access bằng cách xây dựng một ứng dụng cụ thể - Quản lý Mua và Bán hàng - Phần 1 - Mô tả
- làm cách nào để đưa nhiều file excel vào cùng 1 table
- Tìm kiếm nhiều lựa chọn trong một TextBox
- Xuất report access sang word,excell
-
02-04-2010, 03:35 AM #2Junior 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 #3Junior 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 #4Junior 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 #5Junior 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 #6Silver 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 #7Junior 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 #8Silver 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ùy từng dòng máy mà người tập có thể sử dụng máy rung khi đứng, nằm, ngồi. Hầu hết thời kì, mọi người thực hành các bài tập trên máy trong khi nó rung để tăng số lượng calo mà họ đốt cháy. Có thể...
Phương án sử dụng máy rung để giảm cân như thế nào tốt nhất?