AI muốn lập trình DLL cho Excel và các loại bằng Delphi thì xem video này nhé!

Liên hệ QC

Nguyễn Duy Tuân

Nghị Hách
Thành viên danh dự
Tham gia
13/6/06
Bài viết
4,652
Được thích
10,140
Giới tính
Nam
Nghề nghiệp
Giáo viên, CEO tại Bluesofts
Lần chỉnh sửa cuối:
Mạnh chạy 1048576 trong bao nhieu giây


Mình đang Conect Access chứ không phải Excel
nếu lấy dữ liệu liên tục thì nên tạo 1 lần kết nối thui .... xong khi nào thoát ứng đụng thì cả giải phóng kết nối là nó nhanh hơn 1 chút đó

Bài 332 của mạnh cái chuỗi đó xài thêm hàm gì nữa cho Delphi nó hiểu khi mình truyền tham số từ Excel vào vậy .... chỉ dùm mạnh
 
Upvote 0
nếu lấy dữ liệu liên tục thì nên tạo 1 lần kết nối thui .... xong khi nào thoát ứng đụng thì cả giải phóng kết nối là nó nhanh hơn 1 chút đó

Bài 332 của mạnh cái chuỗi đó xài thêm hàm gì nữa cho Delphi nó hiểu khi mình truyền tham số từ Excel vào vậy .... chỉ dùm mạnh
Mạnh đứa cái đoạn conect xem thử, có làm cái này bao giờ đâu
 
Upvote 0
Mạnh đứa cái đoạn conect xem thử, có làm cái này bao giờ đâu
Thử code sau của tây xem sao nhé
https://stackoverflow.com/questions...nection-variable-assignment/39670765#39670765
Mã:
function MakeDBCall( AConnection : TAdoConnection )
var
LocalConn : TAdoConn;
begin
// This creates a brand new ADO connection.
LocalConn := TAdoConnection.Create(nil);
try
// This line discards the connection you've just created,
// orphaning it (leaking the memory), and sets LocalConn
// to point to the object passed in as AConnection.
LocalConn := AConnection
///create the table and perform action using the LocalConn
finally
// This line frees AConnection, making your global variable invalid
LocalConn.free;
end;
end;
 
Upvote 0
Thử code sau của tây xem sao nhé
Các bạn cho mình hỏi 1 chút
Mình đang tập viết 1 code ADO lấy dữ liệu từ Server khi mình khai báo Password, ID luôn trong Delphi thì nó chạy tốt...

Nhưng khi mình tách ra truyền tham số Password từ Excel vào thì nó lỗi ko chạy .... Vậy mình muốn hỏi sử dụng thêm hàm gì nữa khi truyền tham số Password từ Excel vào DLL hay khai báo biến kiểu gì cho nó chạy
Xin cảm ơn

Khai báo như sau trong DLL thì nó chạy ... còn tách ra truyền tham số từ Excel vào thì nó Lỗi ?!
Mình muốn coi cái đoạn text mà mạnh kết nối ý, và cái tham số mạnh tách từ Excel kìa, chú ý coi cái tham Số truyền từ Excel phai String khong
 
Lần chỉnh sửa cuối:
Upvote 0
Mình muốn coi cái đoạn text mà mạnh kết nối ý, và cái tham số mạnh tách từ Excel kìa, chú ý coi cái tham Số truyền từ Excel phai String khong
Trong Excel minh khai báo tham số truyền vào như sau mà nó lỗi không chạy
Con viết hết vao DLL thì nó chạy ... Mình nghĩ là tham số truyền vào nó lỗi
Mã:
Sub TesSQL()
    Dim ServerName As String
    Dim DatabaseName As String
    Dim UserId As String
    Dim Password As String
  
    ServerName = "115.xx.2.xx"
    DatabaseName = "Test_KT"
    UserId = "Test_KT"
    Password = "Kieumanh.*445513"
End Sub
Chuỗi trong Delphi như sau
Mã:
cnn.ConnectionString  := 'Driver={SQL Server};Server='
        + ServerName + ';Database=' + DatabaseName
        + ';Uid=' + UserId + ';Pwd=' + Password + ';';
 
Upvote 0
Thử code sau của tây xem sao nhé
https://stackoverflow.com/questions...nection-variable-assignment/39670765#39670765
Mã:
function MakeDBCall( AConnection : TAdoConnection )
var
LocalConn : TAdoConn;
begin
// This creates a brand new ADO connection.
LocalConn := TAdoConnection.Create(nil);
try
// This line discards the connection you've just created,
// orphaning it (leaking the memory), and sets LocalConn
// to point to the object passed in as AConnection.
LocalConn := AConnection
///create the table and perform action using the LocalConn
finally
// This line frees AConnection, making your global variable invalid
LocalConn.free;
end;
end;

Đoạn code này của anh Tây này là lỗi bét nhè nhé. Có thể bạn lấy của anh tây đang hỏi bài chứ không phải câu trả lời đúng.
 
Upvote 0
Trong Excel minh khai báo tham số truyền vào như sau mà nó lỗi không chạy
Con viết hết vao DLL thì nó chạy ... Mình nghĩ là tham số truyền vào nó lỗi
Mã:
Sub TesSQL()
    Dim ServerName As String
    Dim DatabaseName As String
    Dim UserId As String
    Dim Password As String
 
    ServerName = "115.xx.2.xx"
    DatabaseName = "Test_KT"
    UserId = "Test_KT"
    Password = "Kieumanh.*445513"
End Sub
Chuỗi trong Delphi như sau
Mã:
cnn.ConnectionString  := 'Driver={SQL Server};Server='
        + ServerName + ';Database=' + DatabaseName
        + ';Uid=' + UserId + ';Pwd=' + Password + ';';

Mạnh thử cách này xem sao
ConnString : string;

ConnString := 'Driver={SQL Server};Server=%s;Database=%s;Uid=%s;Pwd=%s;';;

ServerName
Database
UserId
Password

cnn.ConnectionString := Format(ConnString,
[ServerName, Database, UserId, Password]);
 
Upvote 0
Mạnh thử cách này xem sao
ConnString : string;

ConnString := 'Driver={SQL Server};Server=%s;Database=%s;Uid=%s;Pwd=%s;';;

ServerName
Database
UserId
Password

cnn.ConnectionString := Format(ConnString,
[ServerName, Database, UserId, Password]);
Mới thử xong ko được vẫn vậy nó sai cái gì đó khi truyền tham số từ Excel vào
Còn để trong Delphi DLL thì ok
 
Upvote 0
mãnh chụp cái lỗi lên đi, mạnh gọi code tu Excel sao ?
Khai báo trong Excel như sau
Mã:
Declare PtrSafe Sub GetDataFormServer Lib "VBLibrary.dll" _
                    (ByVal ServerName As String, ByVal DatabaseName As String, _
                    ByVal UserId As String, ByVal Password As String, _
                    ByVal Target As Variant)
Chạy nó đơ Excel xong thoát luôn
 
Upvote 0
Khai báo trong Excel như sau
Mã:
Declare PtrSafe Sub GetDataFormServer Lib "VBLibrary.dll" _
                    (ByVal ServerName As String, ByVal DatabaseName As String, _
                    ByVal UserId As String, ByVal Password As String, _
                    ByVal Target As Variant)
Chạy nó đơ Excel xong thoát luôn
Manh thu cai du Const, var gióng máy bài trước chưa.
 
Upvote 0
To @thuyyeu99
Mạnh mới làm ok rồi .... quả thực nhảy xuống vực sâu vùng vẩy diết nó mới .................... lòi ra 1 con đường

Tại mình truyền cái tham số vào Delphi nó ko hiểu chi hết cuối cùng phải nhờ cái showmessage(ConnString);
xem nó nổi lên cái chi mới biết là mình làm sai :p:D
 
Upvote 0
To @thuyyeu99
Mạnh mới làm ok rồi .... quả thực nhảy xuống vực sâu vùng vẩy diết nó mới .................... lòi ra 1 con đường

Tại mình truyền cái tham số vào Delphi nó ko hiểu chi hết cuối cùng phải nhờ cái showmessage(ConnString);
xem nó nổi lên cái chi mới biết là mình làm sai :p:D
Rồi mạnh giải quyết xong chua hihihih
 
Upvote 0
Có cài SQL sever không. Nếu không cài Hướng dẫn mình cách Conect với (máy cái vụ mạng rối quá)
không cài chi hết ... bạn cho mình thông số Server đi mình test xem sao thêm chút nữa xong mình úp code cho .... nó đơn giản như viết trên Excel vậy thui mà
Nhưng cái thuở ban đầu Mình chưa hiểu hết cách khai báo cho DLL nó hiểu nên nó sai vậy thôi .... hiểu rồi thấy thường
Thông số cơ bản như sau IP Tĩnh đó nha

Mã:
Sub TesSQL()
    Dim ServerName As String
    Dim DatabaseName As String
    Dim UserId As String
    Dim Password As String
    
    ServerName = "115.xx.2.1xx"
    DatabaseName = "Test_KT"
    UserId = "Test_KT"
    Password = "Kieumanh.*445513"
    Username = "User1xx2rr"
End Sub
 
Upvote 0
không cài chi hết ... bạn cho mình thông số Server đi mình test xem sao thêm chút nữa xong mình úp code cho .... nó đơn giản như viết trên Excel vậy thui mà
Nhưng cái thuở ban đầu Mình chưa hiểu hết cách khai báo cho DLL nó hiểu nên nó sai vậy thôi .... hiểu rồi thấy thường
Thông số cơ bản như sau IP Tĩnh đó nha

Mã:
Sub TesSQL()
    Dim ServerName As String
    Dim DatabaseName As String
    Dim UserId As String
    Dim Password As String
   
    ServerName = "115.xx.2.1xx"
    DatabaseName = "Test_KT"
    UserId = "Test_KT"
    Password = "Kieumanh.*445513"
    Username = "User1xx2rr"
End Sub
minh mù tịch 2 cái
ServerName = "115.xx.2.1xx"
DatabaseName = "Test_KT"
Giả dụ mình muốn máy mình làm máy chủ thì sao
 
Upvote 0
minh mù tịch 2 cái
ServerName = "115.xx.2.1xx"
DatabaseName = "Test_KT"
Giả dụ mình muốn máy mình làm máy chủ thì sao
cái này là mịnh tịt đó nha ... mạnh chỉ nhờ cái Server của 1 người bạn test code thui nên chưa hiểu lắm khi máy cài SQL xong cấu hình nó sao đó
Cái này hỏi @Nguyễn Duy Tuân biết liền à
 
Upvote 0
cái này là mịnh tịt đó nha ... mạnh chỉ nhờ cái Server của 1 người bạn test code thui nên chưa hiểu lắm khi máy cài SQL xong cấu hình nó sao đó
Cái này hỏi @Nguyễn Duy Tuân biết liền à
Cài SQL thì chắc có thể mò ra được, nhưng không cài mới hay iihihih (Cái đó bí mật công nghệ nên chắc không được rồi)
 
Upvote 0
Web KT
Back
Top Bottom