Đố vui về ADO, DAO.

Liên hệ QC
Các anh chị cho em hỏi xíu
Trong query co cách nào mình xác dinh fiels nào là khóa chính trong câu lệnh sql không ah
 
nếu được thì cả 2 anh hihi
SQLServer thì bạn thử như sau:

Mã:
select schema_name(tab.schema_id) as [schema_name],
    pk.[name] as pk_name,
    ic.index_column_id as column_id,
    col.[name] as column_name,
    tab.[name] as table_name
from sys.tables tab
    inner join sys.indexes pk
        on tab.object_id = pk.object_id
        and pk.is_primary_key = 1
    inner join sys.index_columns ic
        on ic.object_id = pk.object_id
        and ic.index_id = pk.index_id
    inner join sys.columns col
        on pk.object_id = col.object_id
        and col.column_id = ic.column_id
order by schema_name(tab.schema_id),
    pk.[name],
    ic.index_column_id

Bạn phải truy vấn bảng nào đó bạn cần. Ở trên là nó sẽ liệt kê tất cả các bảng có trong CSDL

Còn ở Access thì bạn có thể tham khảo Bài này
 
Cám ơn các anh/chị , Topic rất hay ạ
 
Lần chỉnh sửa cuối:
File text thôi bà con, cứ notepad mà phang :)
 
Lần chỉnh sửa cuối:
File này dùng Notepad.exe là mở được rồi.
Nếu muốn dùng code thì bạn dùng FSO (File System Object)
 
Hì hì, wow cái gì mà wow @appl . Parse file text này có phần mềm chuyên dùng của NH. Chứ bạn code dùng FSO, readall rồi parse nổi không ?
Liên quan đến tiền bạc nữa, parse sai 1 byte thôi cũng đủ tiêu :)
 
Lâu lắm ko vào đây nay đố vui 1 tẹo

1/ File sau nếu mắt thường nhìn nó thì chỉ có 83 dòng hay chọn nguyên cột B thì Count cũng chỉ có 83 dòng ??!!
2/ trên thực tế thì nó có tới 271 RecordCount ( nếu xài ADO mà đếm)
3/ chênh lệch nhau là: 271 - 83 = 188 RecordCount

Vậy muốn đố là:

1/ sự chênh lệch nhau 188 đó ở đâu ra mà có ... tại sao ???!!!
2/ Cách xử lý nó ??? ... có mấy cách ??!!!
3/ đó là 1 trong những nguyên nhân làm File Excel phình to ra theo thời gian mặc dù dữ liệu có 1 tẹo
.....
đó cũng là 1 cái gì đó giúp ai đó đang và sẻ xài ADO hiểu thêm nó 1 chút :D

Untitled.png
 

File đính kèm

  • Data.rar
    11.7 KB · Đọc: 9
Lâu lắm ko vào đây nay đố vui 1 tẹo

1/ File sau nếu mắt thường nhìn nó thì chỉ có 83 dòng hay chọn nguyên cột B thì Count cũng chỉ có 83 dòng ??!!
2/ trên thực tế thì nó có tới 271 RecordCount ( nếu xài ADO mà đếm)
3/ chênh lệch nhau là: 271 - 83 = 188 RecordCount

Vậy muốn đố là:

1/ sự chênh lệch nhau 188 đó ở đâu ra mà có ... tại sao ???!!!
2/ Cách xử lý nó ??? ... có mấy cách ??!!!
3/ đó là 1 trong những nguyên nhân làm File Excel phình to ra theo thời gian mặc dù dữ liệu có 1 tẹo
.....
đó cũng là 1 cái gì đó giúp ai đó đang và sẻ xài ADO hiểu thêm nó 1 chút :D

:D bác đố hay là bác hỏi vậy?
- Đối với ADO và theo như file mẫu thì lỗi này do một nguyên nhân và nhớ có lần tôi đề cập rồi.
- Xử lý thì tôi cũng biết 2, 3 cách.
- Cái ý số 3 tôi không nghĩ nó làm phìn file Excel lên đâu.
Thôi đố thì từ từ giải đố vậy. :D
 
:D bác đố hay là bác hỏi vậy?
- Đối với ADO và theo như file mẫu thì lỗi này do một nguyên nhân và nhớ có lần tôi đề cập rồi.
- Xử lý thì tôi cũng biết 2, 3 cách.
- Cái ý số 3 tôi không nghĩ nó làm phìn file Excel lên đâu.
Thôi đố thì từ từ giải đố vậy. :D
cái ý số 3 là có đấy ( nếu nó lên 1048576 ... thì mới thấy ) ... đố chứ ko hỏi he
 
Lâu lắm ko vào đây nay đố vui 1 tẹo

1/ File sau nếu mắt thường nhìn nó thì chỉ có 83 dòng hay chọn nguyên cột B thì Count cũng chỉ có 83 dòng ??!!
2/ trên thực tế thì nó có tới 271 RecordCount ( nếu xài ADO mà đếm)
3/ chênh lệch nhau là: 271 - 83 = 188 RecordCount

Vậy muốn đố là:

1/ sự chênh lệch nhau 188 đó ở đâu ra mà có ... tại sao ???!!!
2/ Cách xử lý nó ??? ... có mấy cách ??!!!
3/ đó là 1 trong những nguyên nhân làm File Excel phình to ra theo thời gian mặc dù dữ liệu có 1 tẹo
.....
đó cũng là 1 cái gì đó giúp ai đó đang và sẻ xài ADO hiểu thêm nó 1 chút :D

View attachment 241246
Do trong bảng tính có định dạng (Cột I) đến dòng 271. Nếu bảng dữ liệu có định dạng hoặc dòng đã được nhập dữ liệu cho dù đã xóa bằng phím Delete trên bàn phím thì nó vẫn tính là có dữ liệu.
Cách khắc phục đơn giản là xuống cuối bảng dòng số 86 nhấn tổ hợp phím Shift+Phím cách trắng >> Shift+Ctrl+Mũi tên xuống >> Ctrl+dấu trừ
 
Lâu quá không trở lại đề tài này, hôm nay mình xin đố các bạn là làm sao lấy được danh sách tên cột của một bảng cho trước mà không dùng vòng lặp?
Trong file mẫu tôi gửi có 3 sheets (Sheet1, Sheet2, Sheet3), và 1 sheet KetQua. Khi tôi muốn lấy tên cột của sheet nào thì nó lấy kết quả tên cột của sheet ấy.

1595475137926.png
 

File đính kèm

  • DoVuiTenCot.xlsm
    17.9 KB · Đọc: 12
Lâu quá không trở lại đề tài này, hôm nay mình xin đố các bạn là làm sao lấy được danh sách tên cột của một bảng cho trước mà không dùng vòng lặp?
Trong file mẫu tôi gửi có 3 sheets (Sheet1, Sheet2, Sheet3), và 1 sheet KetQua. Khi tôi muốn lấy tên cột của sheet nào thì nó lấy kết quả tên cột của sheet ấy.

Tôi sẽ dùng Fields Collection của ADODB recordset.
Lưu xuống Sheet thì dùng hàm Transpose().
 
Web KT
Back
Top Bottom