XIN GIẢI THÍCH GIÚP CODE

Liên hệ QC

phuoclocvl

Thành viên thường trực
Tham gia
28/3/12
Bài viết
220
Được thích
32
Xin Chào ACE GPE,
em mới tìm hiểu về code nên không hiểu ý nghĩa câu lệnh này nhờ các anh chị em giải thích hộ
Dim cmdtxt As String
Dim adors As New Recordset
UName = Worksheets("MAIN").Range("B4").Text
UPass = Worksheets("MAIN").Range("B5").Text
Set Db = New Connection
Db.CursorLocation = adUseClient
If Db.State = 1 Then Db.Close
Db.Open "Provider =IBMDASQL.DataSource.1" & _
";Catalog Library List=JDETSTDTA" & _
";Persist Security Info=True" & _
";Force Translate=0" & _
";Data Source = WFVNPROD" & _
";User ID =" & UName & "" & _
";Password =" & UPass
Set adors = New Recordset
If adors.State = 1 Then adors.Close
cmdtxt = "SELECT A.DCPLANTNUMBER AS PLANT,A.DCWORKCENTER AS WC,A.DCORDERNUMBER AS MO,B.REFNO,A.DCGROUPNUMBER AS GROUP,A.DCITEMNUMBER AS ITEM,A.DCOPERATIONNUMBER AS OPS,A.DCTRANSQUANTITY AS SCANQTY,A.DCTRNDATE30,B.ODUDT,B.JOBNO " & _
"FROM WWUSAF.PR084DCWK A, AMFLIBW.MOMAST B " & _
"WHERE A.DCORDERNUMBER=B.ORDNO AND A.DCTRNDATE30 BETWEEN '" & FR & "' AND '" & TT & "' AND A.DCPLANTNUMBER='31' " & _
"ORDER BY A.DCTRNDATE30 "

adors.Open cmdtxt, Db, 3, 3 ' giải thích hộ em câu lệnh này

For i = 0 To adors.Fields.Count - 1
Cells(1, i + 1) = adors.Fields(i).Name
Next i
Range("a2").CopyFromRecordset adors
adors.Close
Set adors = Nothing
Xin cảm ơn,
 
Tôi thêm Sub và End sub thì có 3 dòng đầu như sau
PHP:
Sub nn()
Dim cmdtxt As String
Dim adors As New Recordset
'Sai ngay dòng 3
Ai giải thích được thì giúp
 
Tôi thêm Sub và End sub thì có 3 dòng đầu như sau
PHP:
Sub nn()
Dim cmdtxt As String
Dim adors As New Recordset
'Sai ngay dòng 3
Ai giải thích được thì giúp

Tôi tưởng từ khoá New ở trên chỉ là thừa thôi. Thế ra nó báo sai hở.
(VBA này vô duyên thật - cái thì cho phép new, cái thì không)
 
Tôi tưởng từ khoá New ở trên chỉ là thừa thôi. Thế ra nó báo sai hở.
(VBA này vô duyên thật - cái thì cho phép new, cái thì không)

Cho phép New khi đã check vào thư viện tương ứng, ai không có thư viện báo lỗi ráng chịu. Vô duyên chỗ nào vậy anh ?
 
Cho phép New khi đã check vào thư viện tương ứng, ai không có thư viện báo lỗi ráng chịu. Vô duyên chỗ nào vậy anh ?

Hai cái xanh và đỏ đáng lẽ phải là hai cái khác nhau. Vô duyên ở chỗ đó.

Nếu chưa check vào thư viện tương ứng thì VBA không thể hiểu cái kiểu Recordset là gì. Đáng lẽ nó phải báo lỗi ngay, đâu cần chờ đến New để dựng đối tượng.

Giải thích từ "thừa" ở bài #3 trên:
Cái Recordset đâu tự có được. Khi nào đọc csdl mới có. Vì vậy New là thừa.
Thêm nữa, chính trong code trên cũng đã có câu Set adors = new Recordset
 
Em chỉ thắc mắc cái này
adors.Open cmdtxt, Db, 3, 3

Tại sao lại ,3 , 3 : nó có ý nghĩa là gì.
Cảm ơn ae
 
adors.Open cmdtxt, db, adOpenStatic, adLockOptimistic
 
Web KT
Back
Top Bottom