Đánh giá chủ đề:
  • 1 Votes - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Sử dụng Class Module và Kết nối dữ liệu SQL SERVER trong Access VBA
#41
(20-06-12, 06:51 PM)lehongduc Đã viết: Chào các Bạn,

Hôm nay tôi muốn trao đổi với các Bạn về vấn đề "Sử dụng Class Module và Kết nối dữ liệu SQL SERVER trong Access VBA" như một giải pháp tối ưu cho các ứng dụng được thiết kế với VBA trong Microsoft Access. Trao đổi này có đính kèm file nguồn để làm ví dụ minh họa.

Để lấy một ví dụ cụ thể, ở đây giả định ta có nhu cầu thiết kế 1 ứng dụng Microsoft Access dùng để quản lý 1 danh bạ điện thoại.

Ứng dụng của chúng ta sẽ bao gồm 1 file dữ liệu và 1 file ứng dụng. Các Bạn có thể tạo File dữ liệu bằng Microsoft Access hoặc SQL SERVER. Ở đây tôi tạo file dữ liệu bằng SQL SERVER.
File dữ liệu đã được nạp trên 15.000 mẫu tin.
Khi file ứng dụng được nạp, ta sẽ cho kết nối với file dữ liệu bằng thủ tục Log-In.

Mục đích của tôi thông qua cách thiết kế trên nhằm:
+ minh họa khả năng của Access VBA có thể lập trình theo hướng đối tượng;
+ kết nối được với nguồn dữ liệu ngoài, ở đây là nguồn SQL SERVER;
+ có thể tạo được những Unbound Form nhằm đáp ứng nhu cầu truy xuất dữ liệu với nhiều người dùng qua mạng máy tính, đồng thời cải thiện được tốc độ xử lý dữ liệu.


Về Cấu trúc của file dữ liệu:
Với ứng dụng này ta chỉ cần có 1 file dữ liệu với 1 bảng dữ liệu. Tất nhiên các Bạn có thể tùy biến thêm nếu thấy cần.
- Tôi đặt tên file dữ liệu này là danhba
- Và tạo 1 bảng dữ liệu có tên là tblDanhsach, với các cột dữ liệu như sau:
+ Ten: tên của 1 người cụ thể trong danh bạ, kiểu dữ liệu Text
+ HoChulot: họ và chữ lót, kiểu dữ liệu Text
+ Gioitinh: xác định giới tính, kiểu dữ liệu Yes/No (mặc định là Nam, với giá trị là True)
+ Ngaysinh: ngày sinh, kiểu dữ liệu Date
+ Dtdd: số điện thoại di động, kiểu dữ liệu Text
+ Dtnha: số điện thoại ở nhà riêng, kiểu dữ liệu Text
+ Dtvp: số điện thoại ở văn phòng làm việc, kiểu dữ liệu Text

Với ứng dụng làm ví dụ sẽ cho ta biết cách:
1. Kết nối với nguồn dữ liệu bên ngoài MS. Access, ở đây là SQL SERVER
2. Viết 1 Class module như thế nào
3. Tạo 1 Unbound Form và gắn kết dữ liệu trên đó như thế nào

Trong bài sau tôi sẽ trình bày tiếp vào nội dung chính của chuyên đề này.
Rất mong các Bạn cùng tham gia nghiên cứu và trao đổi.

Nội dung các file đính kèm:
1. File ứng dụng MS. Access với định dạng mdb có mã nguồn
2. File SQL (Text) dùng để tạo database trên SQL SERVER cục bộ (local) nếu các Bạn muốn tạo.

Cũng xin trao đổi rõ thêm: File ứng dụng và file dữ liệu nêu trên mới chỉ là "sườn" còn "thô", để nó trở thành 1 ứng dụng hoàn chỉnh, chúng ta còn phải tinh chỉnh nhiều thứ; đó cũng chính là công việc mà tôi muốn mời các Bạn cùng tham gia trao đổi, qua đó chúng ta thu hoạch được những kiến thức căn bản chắc chắn hơn về chuyên đề này.

Tài liệu tham khảo:
Tài liệu tôi dùng để tham khảo chính để viết loạt bài này (bao gồm ứng dụng làm ví dụ) là loạt sách:
Beginning Access 2003 VBA, Beginning Access 2007 VBA
của Denise M. Gosnell

Chào các Bạn,
Xin nói thêm về chuyện ứng dụng và dữ liệu còn "thô":

Nói chúng "thô" bởi lẽ:

1. File dữ liệu SQL SERVER chỉ mới có các bảng dữ liệu thôi. Như vậy chúng chỉ mới là chỗ để lưu dữ liệu phát sinh, chưa làm được việc xử lý dữ liệu (ta dễ thấy một phần những việc đơn giản trong việc xử lý dữ liệu này như: lưu, xóa, trích xuất thông tin, lọc thông tin).
Bản thân SQL SERVER là 1 hệ thống quản trị cơ sở dữ liệu mạnh, chứ không chỉ đơn thuần là nơi để lưu dữ liệu. Ta sẽ bàn tới cách giao nhiệm vụ xử lý dữ liệu cho cái file dữ liệu SQL SERVER đã tạo ở trên. Hiện nay việc xử lý dữ liệu vẫn còn do file ứng dụng đãm trách thông qua các câu lệnh SQL trong các module.

2. Nếu chạy file ứng dụng đang có ta sẽ thấy khi mở Form "frmContact" (dùng để cập nhật và xem dữ liệu) sẽ còn mất 1 ít thời gian mà ta có thể cảm nhận được. Mục tiêu của chúng ta là phải làm sao cho nhanh đến mức không cảm thấy phải chờ một chút nào.
Tôi đã kiểm tra thử mở form nói trên với kết nối internet qua 1 USB 3G của Viettel (loại 7.2 Mbps) trên xe hơi đang chạy: thời gian nạp xong form mất khoảng 25 giây.

Có Bạn nào tìm được lý do nào khác không?

Link tải File ứng dụng minh họa, bản cập nhật ngày 15/7/2014:
http://www.mediafire.com/download/j5v854...150714.rar

Mình tạm gọi cách thức cài đặt của bạn là "truy cập lúc có nhu cầu" -> TCLCYC
Vậy bạn có thể phân tích cho mình điểm lợi hại ( về thực thi và công sức code ) của 2 phương pháp TCLCYC và phương pháp relink table theo truyền thống không?
Cám ơn bạn.
Chữ ký của thucgia Hix, Access quả nhiên lợi hại !!!! http://vibigaba.esy.es/
ღღღღღTài sản của thucgia (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#42
(18-07-12, 01:47 PM)lehongduc Đã viết: Chào các Bạn,

Để giúp các Bạn có căn cứ đánh giá và tối ưu hoá hiệu quả truy xuất dữ liệu của các thủ tục đang có trong file ứng dụng minh hoạ và các thủ tục do chính các Bạn viết hoặc hiệu chỉnh, tôi đã cho nạp vào file dữ liệu trên SQL SERVER:
+ Trên 12.000 chứng từ phát sinh (trong bảng "tblctunx")
+ Với trên 48.000 chi tiết hàng hoá phát sinh (trong bảng "tblctunxct")

Rất mong các Bạn cùng tham gia trao đổi để chúng ta cùng làm sáng tỏ những vấn đề đang thảo luận trong chuyên đề này.

Rất hay, cám ơn bạn.
Trong chuyên đề của bạn hình như chưa có phần phân trang (paging) ?
Nhân tiện cho mình hỏi tí về image : Trong access làm thế nào có thể up load file hình ảnh lên server ? (Không lưu trong database nghen)
thank.
Chữ ký của thucgia Hix, Access quả nhiên lợi hại !!!! http://vibigaba.esy.es/
ღღღღღTài sản của thucgia (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#43
Chào các Bạn,

Có rất nhiều Bạn hỏi tôi làm cách nào để có thể share được MS SQL SERVER qua internet, nhằm mục đích:

1. Phân phối ứng dụng Front-End viết bằng MS. Access đến các máy khách (client)
2. Cho phép truy xuất đến file dữ liệu MS SQL SERVER (Back-End) đặt tại 1 server cố định.

Bạn hoàn toàn có thể làm điều đó mà không cần phải thuê hosting để đặt file dữ liệu MS SQL SERVER lên đó.
Vậy làm bằng cách nào?
Chỉ cần hỏi anh bạn Google là ra thôi mà các Bạn. Và sau đây là 1 link do Google chỉ đến:
http://phanmem.nhagiao.edu.vn/HDCauHinhS...netweb.htm

Link tải tài liệu định dạng PDF: http://www.mediafire.com/download/5cdax5...terNet.pdf

Cũng xin nói để các Bạn yên tâm, chính tôi đã cung cấp cho rất nhiều khách hàng ứng dụng QUẢN LÝ BÁN HÀNG với giải pháp nêu trên. Các khách hàng này đều có quy mô không nhỏ (có khách hàng đến trên 50 chi nhánh, với khối lượng chứng từ phát sinh hàng ngày trên 1.000 chứng từ mỗi chi nhánh, trên 100 users kết nối liên tục) mà mọi việc vẫn trơn tru.

Bạn nào đang say mê MS. Access và muốn kiếm tiền từ nó, xin cứ yên tâm "tiến lên".

Chúc các Bạn thành công.
Chữ ký của lehongduc Lê Hồng Đức
Số ĐT: 0913.941.144
Email: lhongduc@gmail.com, lehongduc@quantribanhang.vn
Website: http://quantribanhang.vn
Reply
Những người đã cảm ơn ongke0711 , maidinhdan , Minh Tiên
#44
Em không tao được data  CreateDanhBaDB, nhờ anh gởi cho em xin file file danhba.mdf, và danhba_log. 
Cảm ơn anh nhiều
Chữ ký của huuduy.duy Xin chào, mình là huuduy.duy, Tham gia http://thuthuataccess.com/forum từ ngày 24-06 -13.
ღღღღღTài sản của huuduy.duy (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#45
Trích dẫn:
Mã:
Dim CONSTR As String
Dim CN As New ADODB.Connection
CONSTR = "Provider = sqloledb;Data Source= NONAMEPC \ SQLEXPRESS;INitial Catalog=QLDIEM; INTEGRATED SECURITY=TRUE"
CN.Open CONSTR
Em về làm thử thì nó báo lỗi dòng cn.open constr, đại ý nói kiểm tra Oledb gì đó, Bác xem giúp e
Chữ ký của vulhu06 Xin chào Guest
Reply
Những người đã cảm ơn
#46
lehongduc Đã viết:Chào các Bạn,

Có rất nhiều Bạn hỏi tôi làm cách nào để có thể share được MS SQL SERVER qua internet, nhằm mục đích:

1. Phân phối ứng dụng Front-End viết bằng MS. Access đến các máy khách (client)
2. Cho phép truy xuất đến file dữ liệu MS SQL SERVER (Back-End) đặt tại 1 server cố định.

Bạn hoàn toàn có thể làm điều đó mà không cần phải thuê hosting để đặt file dữ liệu MS SQL SERVER lên đó.
Vậy làm bằng cách nào?
Chỉ cần hỏi anh bạn Google là ra thôi mà các Bạn. Và sau đây là 1 link do Google chỉ đến:
http://phanmem.nhagiao.edu.vn/HDCauHinhS...netweb.htm

Link tải tài liệu định dạng PDF: http://www.mediafire.com/download/5cdax5...terNet.pdf

Cũng xin nói để các Bạn yên tâm, chính tôi đã cung cấp cho rất nhiều khách hàng ứng dụng QUẢN LÝ BÁN HÀNG với giải pháp nêu trên. Các khách hàng này đều có quy mô không nhỏ (có khách hàng đến trên 50 chi nhánh, với khối lượng chứng từ phát sinh hàng ngày trên 1.000 chứng từ mỗi chi nhánh, trên 100 users kết nối liên tục) mà mọi việc vẫn trơn tru.

Bạn nào đang say mê MS. Access và muốn kiếm tiền từ nó, xin cứ yên tâm "tiến lên".

Chúc các Bạn thành công.

Xin góp ý bổ sung ý này của anh Lê Hồng Đức

Khi bạn tải tài liệu này về bạn chú ý đến trang số 6: Có 2 địa chỉ IP chúng ta cần hiểu
+ Địa chỉ IP trong mạng LAN của máy tính bạn: ( Cái này ta chỉnh thế nào cũng được)
+ Địa chỉ IP tĩnh do nhà cung cấp dịch vụ Internet cung cấp. ( Cái này phải mua Lý do:

* Thông thường khi ta đăng ký sử dụng mạng Internet nhà mạng chỉ cho ta địa chỉ IP động, để tiết kiệm băng thông nhà mạng. Mỗi lần ta bật/ tắt modum thì ta sẽ nhận được 1 địa chỉ IP mới.

* Thế thì bạn muốn dùng máy tình ở nhà làm máy chủ bạn phải đăng kỳ mua 1 địa chỉ IP tĩnh ( giákhông rõ lắm nhưng cũng tầm 700 ngàn là IP rẽ nhất và sẽ có những dịch vụ đi kèm nếu mắc hơn) 

* Khi đó ta mới dễ dàng thiết lập máy nhà thì máy chủ, nếu không mua IP tĩnh thì ta phải chỉnh code của ta khi ta tắt/mở modum.

* Tôi đã làm 1 video liên quan đến vấn đề này là sử dụng ADODB để kết nối với SQL Server thông quá IP động nhưng do bản ghi âm ồn quá do Micro có vấn đề nên mình sẽ làm video khác trong vài ngày tới để mình họa Access kết nối với SQL Server dùng máy tính nhà làm máy chủ.

Thân mến!


Riêng câu hỏi bạn 
Trích dẫn:vulhu06
Mã:
Dim CONSTR As String
Dim CN As New ADODB.Connection
CONSTR = "Provider = sqloledb;Data Source= NONAMEPC \ SQLEXPRESS;INitial Catalog=QLDIEM; INTEGRATED SECURITY=TRUE"
CN.Open CONSTR
Em về làm thử thì nó báo lỗi dòng cn.open constr, đại ý nói kiểm tra Oledb gì đó, Bác xem giúp e

Sai chuỗi Connection String CONSTR

Tôi khuyên bạn nên dùng chuỗi kết nối bằng IP và cổng (Port) để kết nối và có tên User + Mật khẩu.
Cú pháp là: ( Lưu ý không có khoảng trắng)
Mã PHP:
ChuoiKetnoi "Provider = SQLOLEDB;Data Source=222.254.241.8,1433;Initial Catalog=Vanbandientu;User ID=Tentaikhoan;Password=Matkhaucuaban;" 

* Trong đó:
+ 222.254.241.8 : là IP tĩnh, bạn vẫn có thể dùng IP động như là 192.168.1.x ( x: từ 2 đến 255)
+ 1433 : Đây là cỗng mà ta mở để cho nó giao tiếp với môi trường mạng.
+ Vanbandientu: là Database mà ta đặt tên trong SQL Server
+ Tên tài khoản: mình tạo mới hoặc dùng tài khoản Sa
+ Mật khẩu: .....

Nếu bạn vẫn dùng chuỗi như trên thì thử chỉnh như sau:
Mã:
CONSTR = "Provider = sqloledb;Data Source=NONAMEPC\SQLEXPRESS;Initial Catalog=QLDIEM;Integrated Security=SSPI;"

Bạn lứu ý cái Instance Name của bạn nhé và phải cấu hình TCP/IP cho phép trong SQL Server Configuration Management cho hợp lệ khi kết nối trong mạng LAN hay Network.

Nếu chưa đươc thì tham khảo link này: https://www.connectionstrings.com/micros...-sqloledb/

Thân mến!
Chữ ký của maidinhdan * Để được hỗ trợ tốt nhất, nhấn vào link dưới đây để xem.
1. [Hướng dẫn] Kiểu file gửi lên để được giúp đỡ
2. [Hướng dẫn] Nội quy diễn đàn
3. [Hướng dẫn] Cách Đưa file và hình vào diễn đàn
4.[Hướng dẫn] Để xây dựng một ứng dụng hoàn hảo và lời cảm tạ
5. Cần tìm Demo hay ứng dụng sử dụng thanh tìm kiếm phía trên cùng, bên phải của diễn đàn.
* Nếu muốn cảm ơn, hãy nhấn nút thank, không cần viết thêm bài nào nửa.



ღღღღღTài sản của maidinhdan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn vulhu06 , lehongduc
#47
(17-03-17, 01:15 AM)maidinhdan Đã viết:
lehongduc Đã viết:Chào các Bạn,

Có rất nhiều Bạn hỏi tôi làm cách nào để có thể share được MS SQL SERVER qua internet, nhằm mục đích:

1. Phân phối ứng dụng Front-End viết bằng MS. Access đến các máy khách (client)
2. Cho phép truy xuất đến file dữ liệu MS SQL SERVER (Back-End) đặt tại 1 server cố định.

Bạn hoàn toàn có thể làm điều đó mà không cần phải thuê hosting để đặt file dữ liệu MS SQL SERVER lên đó.
Vậy làm bằng cách nào?
Chỉ cần hỏi anh bạn Google là ra thôi mà các Bạn. Và sau đây là 1 link do Google chỉ đến:
http://phanmem.nhagiao.edu.vn/HDCauHinhS...netweb.htm

Link tải tài liệu định dạng PDF: http://www.mediafire.com/download/5cdax5...terNet.pdf

Cũng xin nói để các Bạn yên tâm, chính tôi đã cung cấp cho rất nhiều khách hàng ứng dụng QUẢN LÝ BÁN HÀNG với giải pháp nêu trên. Các khách hàng này đều có quy mô không nhỏ (có khách hàng đến trên 50 chi nhánh, với khối lượng chứng từ phát sinh hàng ngày trên 1.000 chứng từ mỗi chi nhánh, trên 100 users kết nối liên tục) mà mọi việc vẫn trơn tru.

Bạn nào đang say mê MS. Access và muốn kiếm tiền từ nó, xin cứ yên tâm "tiến lên".

Chúc các Bạn thành công.

Xin góp ý bổ sung ý này của anh Lê Hồng Đức

Khi bạn tải tài liệu này về bạn chú ý đến trang số 6: Có 2 địa chỉ IP chúng ta cần hiểu
+ Địa chỉ IP trong mạng LAN của máy tính bạn: ( Cái này ta chỉnh thế nào cũng được)
+ Địa chỉ IP tĩnh do nhà cung cấp dịch vụ Internet cung cấp. ( Cái này phải mua Lý do:

* Thông thường khi ta đăng ký sử dụng mạng Internet nhà mạng chỉ cho ta địa chỉ IP động, để tiết kiệm băng thông nhà mạng. Mỗi lần ta bật/ tắt modum thì ta sẽ nhận được 1 địa chỉ IP mới.

* Thế thì bạn muốn dùng máy tình ở nhà làm máy chủ bạn phải đăng kỳ mua 1 địa chỉ IP tĩnh ( giákhông rõ lắm nhưng cũng tầm 700 ngàn là IP rẽ nhất và sẽ có những dịch vụ đi kèm nếu mắc hơn) 

* Khi đó ta mới dễ dàng thiết lập máy nhà thì máy chủ, nếu không mua IP tĩnh thì ta phải chỉnh code của ta khi ta tắt/mở modum.

* Tôi đã làm 1 video liên quan đến vấn đề này là sử dụng ADODB để kết nối với SQL Server thông quá IP động nhưng do bản ghi âm ồn quá do Micro có vấn đề nên mình sẽ làm video khác trong vài ngày tới để mình họa Access kết nối với SQL Server dùng máy tính nhà làm máy chủ.

Thân mến!


Riêng câu hỏi bạn 
Trích dẫn:vulhu06
Mã:
Dim CONSTR As String
Dim CN As New ADODB.Connection
CONSTR = "Provider = sqloledb;Data Source= NONAMEPC \ SQLEXPRESS;INitial Catalog=QLDIEM; INTEGRATED SECURITY=TRUE"
CN.Open CONSTR
Em về làm thử thì nó báo lỗi dòng cn.open constr, đại ý nói kiểm tra Oledb gì đó, Bác xem giúp e

Sai chuỗi Connection String CONSTR

Tôi khuyên bạn nên dùng chuỗi kết nối bằng IP và cổng (Port) để kết nối và có tên User + Mật khẩu.
Cú pháp là: ( Lưu ý không có khoảng trắng)
Mã PHP:
ChuoiKetnoi "Provider = SQLOLEDB;Data Source=222.254.241.8,1433;Initial Catalog=Vanbandientu;User ID=Tentaikhoan;Password=Matkhaucuaban;" 

* Trong đó:
+ 222.254.241.8 : là IP tĩnh, bạn vẫn có thể dùng IP động như là 192.168.1.x ( x: từ 2 đến 255)
+ 1433 : Đây là cỗng mà ta mở để cho nó giao tiếp với môi trường mạng.
+ Vanbandientu: là Database mà ta đặt tên trong SQL Server
+ Tên tài khoản: mình tạo mới hoặc dùng tài khoản Sa
+ Mật khẩu: .....

Nếu bạn vẫn dùng chuỗi như trên thì thử chỉnh như sau:
Mã:
CONSTR = "Provider = sqloledb;Data Source=NONAMEPC\SQLEXPRESS;Initial Catalog=QLDIEM;Integrated Security=SSPI;"

Bạn lứu ý cái Instance Name của bạn nhé và phải cấu hình TCP/IP cho phép trong SQL Server Configuration Management cho hợp lệ khi kết nối trong mạng LAN hay Network.

Nếu chưa đươc thì tham khảo link này: https://www.connectionstrings.com/micros...-sqloledb/

Thân mến!

Thanks Bác nhiều, đã thử và thành công, e đang tìm hiểu cái này, nếu có gì thắc mắc mong mọi người hướng dẫn
Thêm vấn đề nữa cần tham khảo ý kiến Bác nè, em có đoạn code khi load Form thì đưa DL Field Lop vào combo trên From, nhưng nó chỉ hiện thị có mỗi Record cuối trong Field thôi

Mã:
rs.Open "select Lop From Lop", cn, 3, 2
For i = 1 To rs.RecordCount
Me.Combo0.ControlSource = rs.Fields("lop")
rs.MoveNext
Next i
Chữ ký của vulhu06 Xin chào Guest
Reply
Những người đã cảm ơn
#48
(17-03-17, 10:20 AM)vulhu06 Đã viết:
(17-03-17, 01:15 AM)maidinhdan Đã viết:
lehongduc Đã viết:Chào các Bạn,

Có rất nhiều Bạn hỏi tôi làm cách nào để có thể share được MS SQL SERVER qua internet, nhằm mục đích:

1. Phân phối ứng dụng Front-End viết bằng MS. Access đến các máy khách (client)
2. Cho phép truy xuất đến file dữ liệu MS SQL SERVER (Back-End) đặt tại 1 server cố định.

Bạn hoàn toàn có thể làm điều đó mà không cần phải thuê hosting để đặt file dữ liệu MS SQL SERVER lên đó.
Vậy làm bằng cách nào?
Chỉ cần hỏi anh bạn Google là ra thôi mà các Bạn. Và sau đây là 1 link do Google chỉ đến:
http://phanmem.nhagiao.edu.vn/HDCauHinhS...netweb.htm

Link tải tài liệu định dạng PDF: http://www.mediafire.com/download/5cdax5...terNet.pdf

Cũng xin nói để các Bạn yên tâm, chính tôi đã cung cấp cho rất nhiều khách hàng ứng dụng QUẢN LÝ BÁN HÀNG với giải pháp nêu trên. Các khách hàng này đều có quy mô không nhỏ (có khách hàng đến trên 50 chi nhánh, với khối lượng chứng từ phát sinh hàng ngày trên 1.000 chứng từ mỗi chi nhánh, trên 100 users kết nối liên tục) mà mọi việc vẫn trơn tru.

Bạn nào đang say mê MS. Access và muốn kiếm tiền từ nó, xin cứ yên tâm "tiến lên".

Chúc các Bạn thành công.

Xin góp ý bổ sung ý này của anh Lê Hồng Đức

Khi bạn tải tài liệu này về bạn chú ý đến trang số 6: Có 2 địa chỉ IP chúng ta cần hiểu
+ Địa chỉ IP trong mạng LAN của máy tính bạn: ( Cái này ta chỉnh thế nào cũng được)
+ Địa chỉ IP tĩnh do nhà cung cấp dịch vụ Internet cung cấp. ( Cái này phải mua Lý do:

* Thông thường khi ta đăng ký sử dụng mạng Internet nhà mạng chỉ cho ta địa chỉ IP động, để tiết kiệm băng thông nhà mạng. Mỗi lần ta bật/ tắt modum thì ta sẽ nhận được 1 địa chỉ IP mới.

* Thế thì bạn muốn dùng máy tình ở nhà làm máy chủ bạn phải đăng kỳ mua 1 địa chỉ IP tĩnh ( giákhông rõ lắm nhưng cũng tầm 700 ngàn là IP rẽ nhất và sẽ có những dịch vụ đi kèm nếu mắc hơn) 

* Khi đó ta mới dễ dàng thiết lập máy nhà thì máy chủ, nếu không mua IP tĩnh thì ta phải chỉnh code của ta khi ta tắt/mở modum.

* Tôi đã làm 1 video liên quan đến vấn đề này là sử dụng ADODB để kết nối với SQL Server thông quá IP động nhưng do bản ghi âm ồn quá do Micro có vấn đề nên mình sẽ làm video khác trong vài ngày tới để mình họa Access kết nối với SQL Server dùng máy tính nhà làm máy chủ.

Thân mến!


Riêng câu hỏi bạn 
Trích dẫn:vulhu06
Mã:
Dim CONSTR As String
Dim CN As New ADODB.Connection
CONSTR = "Provider = sqloledb;Data Source= NONAMEPC \ SQLEXPRESS;INitial Catalog=QLDIEM; INTEGRATED SECURITY=TRUE"
CN.Open CONSTR
Em về làm thử thì nó báo lỗi dòng cn.open constr, đại ý nói kiểm tra Oledb gì đó, Bác xem giúp e

Sai chuỗi Connection String CONSTR

Tôi khuyên bạn nên dùng chuỗi kết nối bằng IP và cổng (Port) để kết nối và có tên User + Mật khẩu.
Cú pháp là: ( Lưu ý không có khoảng trắng)
Mã PHP:
ChuoiKetnoi "Provider = SQLOLEDB;Data Source=222.254.241.8,1433;Initial Catalog=Vanbandientu;User ID=Tentaikhoan;Password=Matkhaucuaban;" 

* Trong đó:
+ 222.254.241.8 : là IP tĩnh, bạn vẫn có thể dùng IP động như là 192.168.1.x ( x: từ 2 đến 255)
+ 1433 : Đây là cỗng mà ta mở để cho nó giao tiếp với môi trường mạng.
+ Vanbandientu: là Database mà ta đặt tên trong SQL Server
+ Tên tài khoản: mình tạo mới hoặc dùng tài khoản Sa
+ Mật khẩu: .....

Nếu bạn vẫn dùng chuỗi như trên thì thử chỉnh như sau:
Mã:
CONSTR = "Provider = sqloledb;Data Source=NONAMEPC\SQLEXPRESS;Initial Catalog=QLDIEM;Integrated Security=SSPI;"

Bạn lứu ý cái Instance Name của bạn nhé và phải cấu hình TCP/IP cho phép trong SQL Server Configuration Management cho hợp lệ khi kết nối trong mạng LAN hay Network.

Nếu chưa đươc thì tham khảo link này: https://www.connectionstrings.com/micros...-sqloledb/

Thân mến!

Thanks Bác nhiều, đã thử và thành công, e đang tìm hiểu cái này, nếu có gì thắc mắc mong mọi người hướng dẫn
Thêm vấn đề nữa cần tham khảo ý kiến Bác nè, em có đoạn code khi load Form thì đưa DL Field Lop vào combo trên From, nhưng nó chỉ hiện thị có mỗi Record cuối trong Field thôi

Mã:
rs.Open "select Lop From Lop", cn, 3, 2
For i = 1 To rs.RecordCount
Me.Combo0.ControlSource = rs.Fields("lop")
rs.MoveNext
Next i

Thanks mọi người, trong khi chờ đợi mình mò và may mắn đã load DL cho combo được rồi
Me.Combo0.AddItem (rs.Fields("lop")), và phải chỉnh cái properties của thằng Combo là Value List
Chữ ký của vulhu06 Xin chào Guest
Reply
Những người đã cảm ơn
#49
Mình kết nối SQL qua internet nhungg sao phần mềm chạy chậm? Vây phải làm sao nhỉ
Chữ ký của tt1212 Nhận lập trình ứng dụng Access, PHP, C#  và hỗ trợ các bạn viết phần mềm ĐT:0989.276.236
Email. Tantriviet.vnn@gmail.com, Websze: http://tantriviet.net/
Reply
Những người đã cảm ơn
#50
(21-03-17, 12:07 AM)tt1212 Đã viết: Mình kết nối SQL qua internet nhungg sao phần mềm chạy chậm? Vây phải làm sao nhỉ

Nhanh hay chậm do giải thuật ta viết dù anh dùng ngôn ngữ nào viết cũng vậy.

Để đánh giá thì anh cần đưa ra vài đoạn code để thảo luận.
Chữ ký của maidinhdan * Để được hỗ trợ tốt nhất, nhấn vào link dưới đây để xem.
1. [Hướng dẫn] Kiểu file gửi lên để được giúp đỡ
2. [Hướng dẫn] Nội quy diễn đàn
3. [Hướng dẫn] Cách Đưa file và hình vào diễn đàn
4.[Hướng dẫn] Để xây dựng một ứng dụng hoàn hảo và lời cảm tạ
5. Cần tìm Demo hay ứng dụng sử dụng thanh tìm kiếm phía trên cùng, bên phải của diễn đàn.
* Nếu muốn cảm ơn, hãy nhấn nút thank, không cần viết thêm bài nào nửa.



ღღღღღTài sản của maidinhdan (View All Items) ღღღღღ
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
  [Hỏi] Dữ liệu trong mainForm và subForm pherotao 5 101 4 Giờ trước
Bài mới nhất: tranthanhan1962
  [Hỏi] Định dạng dd/mm/yyyy và 123.456.789,00 trong vba vuthaiha90 2 155 15-11-17, 12:17 AM
Bài mới nhất: ongke0711
  [Thủ Thuật] Sử dụng window account cho việc phân quyền trong access tvn_hut 5 298 01-11-17, 01:47 PM
Bài mới nhất: ongke0711
  [Hỏi] Dùng DAO để thêm, xóa, sửa, cập nhật form main - sub minhtungph 7 251 19-10-17, 11:48 PM
Bài mới nhất: ongke0711
  [Hàm] Nhờ gở khó về hàm DLookup trong câu lệnh VBA phungminhluan 3 159 13-10-17, 07:24 PM
Bài mới nhất: phungminhluan

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ơ