Làm sao tạo biến tĩnh dùng cho toàn file?

Liên hệ QC

lameco411

Thành viên hoạt động
Tham gia
27/11/15
Bài viết
162
Được thích
63
Như tiêu đề, em muốn tạo một biến tĩnh sử dụng trong toàn file? đến khi nào tắt file thì biến tự xóa giá trị.
mọi người cho em hỏi có được không ạ?
Nhân tiện cho em hỏi có ai biết gì về static function hay static procedure không em đang mơ hồ vụ này.
 
Như tiêu đề, em muốn tạo một biến tĩnh sử dụng trong toàn file? đến khi nào tắt file thì biến tự xóa giá trị.
mọi người cho em hỏi có được không ạ?
Nhân tiện cho em hỏi có ai biết gì về static function hay static procedure không em đang mơ hồ vụ này.
Bạn có thể tham khảo https://docs.microsoft.com/en-us/do...res/constants-enums/how-to-declare-a-constant
 
Upvote 0
Cái này cũng không đúng ý em lắm ạ.
Em có nhiều sub liên quan tới việc kết nối tới SQL server. Nhưng mà em lụm được phần connectionstring trên GPE về xài thì phải nhập trực tiếp username và password vào trong chuỗi đó.
Em muốn khi mở file lên người dùng phải đăng nhập vào user và pass và lưu vào trong connectionstring đó luôn để dùng cho tới khi nào tắt file thì thôi. Không biết cách này có ổn không anh
 
Upvote 0
Cái này cũng không đúng ý em lắm ạ.
Em có nhiều sub liên quan tới việc kết nối tới SQL server. Nhưng mà em lụm được phần connectionstring trên GPE về xài thì phải nhập trực tiếp username và password vào trong chuỗi đó.
Em muốn khi mở file lên người dùng phải đăng nhập vào user và pass và lưu vào trong connectionstring đó luôn để dùng cho tới khi nào tắt file thì thôi. Không biết cách này có ổn không anh
Thì bạn lưu cái biến đó vào cell nào đó của sheet, khi thoát ra thì xóa cái cell đó là được mà.
 
Upvote 0
Biến có thể dùng toàn file gọi là biến toàn cục. Biến toàn cục có đời sống suốt file. Lúc mở file (project) thì nó được dựng lên và lúc đóng file (project) thì nó chết theo.
Tất cả các biến khai báo bên ngoài Sub/Function đều là biến toàn cục:
a) Nếu nó khai báo với từ khoá Private thì nó chỉ thấy được trong phạm vi của cái Module mà nó khai báo. Tức là nó chỉ truy cập được trong các Sub/Function cùng Module với nó.
b) Nếu nó khai báo với từ khoá Public thì Module nào cũng thấy và truy cập được nó.
Lưu ý là phạm vi (visibility) và đời sống (life span) là hai việc riêng biệt nhau. Biến toàn cục dẫu khai báo Private vẫn có đời sống cả project, Project còn tồn tại là chúng còn tồn tại.

Để sử dụng cho trường hợp của bạn, nên khai báo nó dạng Public trong một mô đun tên Credentials
[Module Credentials]
Public uName As String
Public pWord As String
[/hết mô đun]
Khi bắt đầu xây chuỗi kết nối, xét nếu Credentials.uName = "" thì lên hộp thoại bảo nhập tài khoản và password.
Ghi chúng vào Credentials.uName và Credentials.pWord
Phương pháp này sẽ biệt lập chúng trong một mô đun riêng và không đụng chạm gì với các công việc khác
Nếu không muốn dùng module riêng thì cũng nên gói gọn chúng để tránh lẫn lộn
Type CredentialSet
Public uName As String
Public pWord As String
End Type
Public Credentials As CredentialSet
Dùng giống như trên

Biến tĩnh (từ chuyên môn là Static) là biến cũng có đời sống suốt file. Tuy nhiên, biến tĩnh là biến nội của Sub/Function mà nó được khai báo. Tuy lúc nào nó cũng ở đó nhưng các Sub/Function khác không thể truy cập.
Dùng biến tĩnh mà có thể truy cập toàn tập hơi khó, bạn phải truy cập qua cái Sub/Function chứa nó.

Ở trên, tôi chỉ nói về code modules. Class Modules có khả năng làm việc hơi khác hơn một chút.
 
Upvote 0
Web KT
Back
Top Bottom