nad582
Thành viên thường trực




- Tham gia
- 7/6/11
- Bài viết
- 317
- Được thích
- 48
Chào các anh chị trong GPE! em có 2 file: file Excel va Accsess.
em có đoạn code: Từ file excel kết nối với Accsess:
.....
Private Sub CommandButton1_Click()
Dim cnn As Object, lrs As Object
Dim mySQL As String, strFile As String
On Error GoTo Handle
Set cnn = CreateObject("ADODB.Connection")
Set lrs = CreateObject("ADODB.Recordset")
strFile = Application.GetOpenFilename("FileAccess,*.mdb")
ActiveSheet.Unprotect ("362312293")
If Len(strFile) Then
cnn.Open "Provider=Microsoft.JET.OLEDB.4.0;" & _
"Data Source=" & strFile
'1
Range("6:65000").Delete Shift:=xlUp
'2
mySQL = "SELECT Story, AreaObj, AreaType, OutputCase, StepType, M11, M22, V13, V23 " & _
"FROM [Area Element Forces] " & _
"Where left(AreaObj,1) like 'F'"
lrs.Open mySQL, cnn, 3, 1
With Sheet1
.[A6].CopyFromRecordset lrs
End With
lrs.Close
'3
mySQL = "SELECT Story&Area, Section " & _
"FROM [Area Assignments Summary] " & _
"Where left(line,1) like 'F'"
lrs.Open mySQL, cnn, 3, 1
With Sheet1
.[K6].CopyFromRecordset lrs
End With
lrs.Close
'4
mySQL = "SELECT MembThick*100 " & _
"FROM [Area Assignments Summary] T1 " & _
"INNER JOIN [Sell Section Properties] T2 " & _
"ON T1.Section = T2.Section " & _
"Where left(line,1) like 'F'"
lrs.Open mySQL, cnn, 3, 1
With Sheet1
.[M6].CopyFromRecordset lrs
End With
lrs.Close
'5
mySQL = "SELECT CentroidX, CentroidY " & _
"FROM [Area Assignments Summary] " & _
"Where left(line,1) like 'F'"
lrs.Open mySQL, cnn, 3, 1
With Sheet1
.[N6].CopyFromRecordset lrs
End With
lrs.Close: Set lrs = Nothing
cnn.Close: Set cnn = Nothing
End If
Handle:
End
End Sub
.....
Nhưng nó chỉ thực hiện được '1 và '2 còn '3 , '4 và '5 thì chưa được xin các anh chị chỉ giúp dùm em.
- ở '3 là lấy field "story", field "Area", field "Section" ở tables "Area Assignments Summary" vào ô K6 với field "story" và field "Area" nằm chung 1 cột.
- ở '4 là lấy field "MembThick" ứng field "Section" ở tables "Sell Section Properties" với field "Section" ở tables "Area Assignments Summary" thì kết quả ở ô M6.
- ở '5 là lấy field "CentroidX" và field "CentroidY" ở tables "Area Assignments Summary" vào ô N6.
ví dụ:
ở '3: ô L6 = S100 thì ô M6 = 100
Nếu trong quá trình diễn giải có chỗ nào chưa rõ xin anh chị hồi đáp em trình bày rõ hơn..
chân thành cảm ơn...
em có đoạn code: Từ file excel kết nối với Accsess:
.....
Private Sub CommandButton1_Click()
Dim cnn As Object, lrs As Object
Dim mySQL As String, strFile As String
On Error GoTo Handle
Set cnn = CreateObject("ADODB.Connection")
Set lrs = CreateObject("ADODB.Recordset")
strFile = Application.GetOpenFilename("FileAccess,*.mdb")
ActiveSheet.Unprotect ("362312293")
If Len(strFile) Then
cnn.Open "Provider=Microsoft.JET.OLEDB.4.0;" & _
"Data Source=" & strFile
'1
Range("6:65000").Delete Shift:=xlUp
'2
mySQL = "SELECT Story, AreaObj, AreaType, OutputCase, StepType, M11, M22, V13, V23 " & _
"FROM [Area Element Forces] " & _
"Where left(AreaObj,1) like 'F'"
lrs.Open mySQL, cnn, 3, 1
With Sheet1
.[A6].CopyFromRecordset lrs
End With
lrs.Close
'3
mySQL = "SELECT Story&Area, Section " & _
"FROM [Area Assignments Summary] " & _
"Where left(line,1) like 'F'"
lrs.Open mySQL, cnn, 3, 1
With Sheet1
.[K6].CopyFromRecordset lrs
End With
lrs.Close
'4
mySQL = "SELECT MembThick*100 " & _
"FROM [Area Assignments Summary] T1 " & _
"INNER JOIN [Sell Section Properties] T2 " & _
"ON T1.Section = T2.Section " & _
"Where left(line,1) like 'F'"
lrs.Open mySQL, cnn, 3, 1
With Sheet1
.[M6].CopyFromRecordset lrs
End With
lrs.Close
'5
mySQL = "SELECT CentroidX, CentroidY " & _
"FROM [Area Assignments Summary] " & _
"Where left(line,1) like 'F'"
lrs.Open mySQL, cnn, 3, 1
With Sheet1
.[N6].CopyFromRecordset lrs
End With
lrs.Close: Set lrs = Nothing
cnn.Close: Set cnn = Nothing
End If
Handle:
End
End Sub
.....
Nhưng nó chỉ thực hiện được '1 và '2 còn '3 , '4 và '5 thì chưa được xin các anh chị chỉ giúp dùm em.
- ở '3 là lấy field "story", field "Area", field "Section" ở tables "Area Assignments Summary" vào ô K6 với field "story" và field "Area" nằm chung 1 cột.
- ở '4 là lấy field "MembThick" ứng field "Section" ở tables "Sell Section Properties" với field "Section" ở tables "Area Assignments Summary" thì kết quả ở ô M6.
- ở '5 là lấy field "CentroidX" và field "CentroidY" ở tables "Area Assignments Summary" vào ô N6.
ví dụ:
ở '3: ô L6 = S100 thì ô M6 = 100
Nếu trong quá trình diễn giải có chỗ nào chưa rõ xin anh chị hồi đáp em trình bày rõ hơn..
chân thành cảm ơn...