Nhờ giúp ghép 2 cột trên 2 bảng có cùng số dòng

Liên hệ QC

doveandrose

hello
Tham gia
3/7/09
Bài viết
2,375
Được thích
2,264
Như tiêu đề . nhờ các thầy giúp đoạn code để ghép 2 cột trên 2 bảng khác nhau ra thành 1 bảng mới


28772c76df8e70e3683b3131a95da6d7.png
 

File đính kèm

  • select 2 column.xlsb
    8.6 KB · Đọc: 12
avatar bốc vậy sao không có ai trả lời ta......hehehehhe
 
hình như mỗi người có 1 cái số bạn ơi . mình ít khi hỏi bài . nhưng cứ hễ gửi bài hỏi là không ai trả lời . -+*/-+*/

thử ADO lần đầu tiên
Mã:
Sub compare_sheets()

Dim cn As ADODB.Connection
Set cn = New ADODB.Connection

With cn
    .Provider = "Microsoft.Jet.OLEDB.4.0"
    .ConnectionString = "Data Source=" & ThisWorkbook.FullName & ";" & _
        "Extended Properties=Excel 8.0;"
    .Open
End With

Dim rst As ADODB.Recordset

Set rst = cn.Execute("select * from [sheet1$A3:A10]")
Set rst = cn.Execute("select * from [sheet1$F3:F10]")


rst.Close
cn.Close

End Sub

ráng lắm cũng chỉ nhiêu đó, rồi làm sao đập nó xuống sheet??? hihihihih
 
thử ADO lần đầu tiên
Mã:
Sub compare_sheets()

Dim cn As ADODB.Connection
Set cn = New ADODB.Connection

With cn
    .Provider = "Microsoft.Jet.OLEDB.4.0"
    .ConnectionString = "Data Source=" & ThisWorkbook.FullName & ";" & _
        "Extended Properties=Excel 8.0;"
    .Open
End With

Dim rst As ADODB.Recordset

Set rst = cn.Execute("select * from [sheet1$A3:A10]")
Set rst = cn.Execute("select * from [sheet1$F3:F10]")


rst.Close
cn.Close

End Sub

ráng lắm cũng chỉ nhiêu đó, rồi làm sao đập nó xuống sheet??? hihihihih

ờ vạn sự khởi đầu nan mà . làm sao đưa xuống sheet đi uống cafe Bến Nghé xong trả hết chữ cho các thầy rồi hử . --=0--=0--=0
ở đây select từ 1 bảng thì đơn giản . mà dạng select từ 2 bảng thì ADO nó lại tự động đi ghép mỗi dòng của bảng 1 gắn với tất cả các dòng của bảng 2 . thành ra bảng mới gồm 8 x 8 = 64 dòng chứ không ra được như vùng [M3:N10]
mình không chắc có câu lệnh nào chỉ gắn đơn từng dòng bảng 1 với 1 dòng của bảng 2 không nên mới đi kiếm thầy tầm sư học đạo ấy mà . nếu không có cách nào khác thì đành dùng lệnh Select 2 lần vậy ....
 
thử ADO lần đầu tiên
Mã:
Sub compare_sheets()

Dim cn As ADODB.Connection
Set cn = New ADODB.Connection

With cn
    .Provider = "Microsoft.Jet.OLEDB.4.0"
    .ConnectionString = "Data Source=" & ThisWorkbook.FullName & ";" & _
        "Extended Properties=Excel 8.0;"
    .Open
End With

Dim rst As ADODB.Recordset

Set rst = cn.Execute("select * from [sheet1$A3:A10]")
Set rst = cn.Execute("select * from [sheet1$F3:F10]")


rst.Close
cn.Close

End Sub

ráng lắm cũng chỉ nhiêu đó, rồi làm sao đập nó xuống sheet??? hihihihih

Dùng hàm CopyFromRecordset

Range("M3").CopyFromRecordset cn.Execute("select * from ...")
Range("N3").CopyFromRecordset cn.Execute("select * from ...")
 
ờ vạn sự khởi đầu nan mà . làm sao đưa xuống sheet đi uống cafe Bến Nghé xong trả hết chữ cho các thầy rồi hử . --=0--=0--=0
ở đây select từ 1 bảng thì đơn giản . mà dạng select từ 2 bảng thì ADO nó lại tự động đi ghép mỗi dòng của bảng 1 gắn với tất cả các dòng của bảng 2 . thành ra bảng mới gồm 8 x 8 = 64 dòng chứ không ra được như vùng [M3:N10]
mình không chắc có câu lệnh nào chỉ gắn đơn từng dòng bảng 1 với 1 dòng của bảng 2 không nên mới đi kiếm thầy tầm sư học đạo ấy mà . nếu không có cách nào khác thì đành dùng lệnh Select 2 lần vậy ....

Bởi vì yêu cầu của bạn không phù hợp với nguyên tắc CSDL Liên Hệ.
Muốn nối 2 bảng thì phải có cái gì để nó nối: lưu ý từ LIÊN HỆ. Nếu không có sự liên hệ thì nối là phản lại tính chất lý thuyết.
Bạn có thể tự ép sự liên hệ bằng cách đặt số thứ tự dòng chẳng hạn.
 
Web KT
Back
Top Bottom