MINI.MIS - Xử lý lỗi SQL thường gặp

TỔNG QUAN BÀI VIẾT

Các lỗi thường gặp

TT Nhóm lỗi Thông báo lỗi (Tiếng Anh) Giải thích lỗi (Tiếng Việt) Nguyên nhân thường gặp Hướng giải quyết Vị trí lỗi
1 Kết nối nguồn dữ liệu Could not find file 'C:\...\Data.xlsx' Không tìm thấy tập tin Excel theo đường dẫn được chỉ định. Sai đường dẫn hoặc tập tin đã bị di chuyển, đổi tên hoặc xóa. Kiểm tra lại đường dẫn và tên tập tin. Kết nối nguồn dữ liệu
2 Kết nối nguồn dữ liệu File not found. Không tìm thấy tập tin cần mở. Đường dẫn hoặc tên tập tin không chính xác. Kiểm tra lại đường dẫn và đảm bảo tập tin tồn tại. Kết nối nguồn dữ liệu
3 Kết nối nguồn dữ liệu Could not find installable ISAM. Không thể khởi tạo trình điều khiển (ISAM) để đọc dữ liệu Excel. Sai Connection String, sai Provider hoặc thiếu Extended Properties. Kiểm tra lại Connection String và Provider. Kết nối nguồn dữ liệu
4 Kết nối nguồn dữ liệu External table is not in the expected format. Tập tin không đúng định dạng mà SQL Engine mong đợi. Sai định dạng tập tin hoặc tập tin bị hỏng. Kiểm tra định dạng .xls, .xlsx, .xlsm và lưu lại tập tin. Kết nối nguồn dữ liệu
5 Kết nối nguồn dữ liệu Cannot find input table or query 'Sheet1$'. Không tìm thấy Worksheet hoặc Named Range được chỉ định. Sai tên Sheet, thiếu ký tự $ hoặc sai Named Range. Kiểm tra lại tên Sheet và cú pháp FROM. FROM
6 Kết nối nguồn dữ liệu The Microsoft Access database engine could not find the object 'Sheet1$'. SQL Engine không tìm thấy đối tượng dữ liệu cần truy cập. Worksheet hoặc Named Range không tồn tại. Kiểm tra lại tên Sheet hoặc Named Range. FROM
7 Kết nối nguồn dữ liệu Permission denied. Không có quyền truy cập tập tin hoặc thư mục. Thiếu quyền đọc hoặc ghi. Kiểm tra quyền truy cập của người dùng. Kết nối nguồn dữ liệu
8 Kết nối nguồn dữ liệu Disk or network error. Xảy ra lỗi khi truy cập ổ đĩa hoặc mạng. Mất kết nối mạng hoặc lỗi thiết bị lưu trữ. Kiểm tra mạng hoặc ổ đĩa chia sẻ. Kết nối nguồn dữ liệu
9 Kết nối nguồn dữ liệu Path/File access error. Không thể truy cập đường dẫn hoặc tập tin. Đường dẫn không hợp lệ hoặc không đủ quyền. Kiểm tra đường dẫn và quyền truy cập. Kết nối nguồn dữ liệu
10 Kết nối nguồn dữ liệu Could not use ''; file already in use. Tập tin đang được sử dụng bởi chương trình hoặc người dùng khác. Workbook đang bị khóa. Đóng các chương trình đang mở tập tin hoặc mở ở chế độ chỉ đọc. Kết nối nguồn dữ liệu
11 Kết nối nguồn dữ liệu The Microsoft Access database engine cannot open or write to the file... SQL Engine không thể mở hoặc ghi vào tập tin. Workbook mở ở chế độ Exclusive hoặc không có quyền ghi. Đóng chế độ Exclusive hoặc cấp quyền truy cập. Kết nối nguồn dữ liệu
12 Kết nối nguồn dữ liệu Unrecognized database format. SQL Engine không nhận dạng được định dạng tập tin. Sai định dạng hoặc tập tin bị hỏng. Kiểm tra Provider và lưu lại tập tin đúng định dạng. Kết nối nguồn dữ liệu
13 Kết nối nguồn dữ liệu Excel cannot open the file because the file format or file extension is not valid. Định dạng hoặc phần mở rộng tập tin không hợp lệ. Phần mở rộng không khớp với nội dung hoặc tập tin bị lỗi. Mở và lưu lại tập tin bằng Microsoft Excel. Kết nối nguồn dữ liệu
14 Kết nối nguồn dữ liệu The file is corrupt and cannot be opened. Tập tin Excel bị hỏng. Tập tin bị lỗi trong quá trình lưu hoặc truyền tải. Sử dụng Open and Repair hoặc khôi phục từ bản sao lưu. Kết nối nguồn dữ liệu
15 Kết nối nguồn dữ liệu The workbook is password protected. Workbook được bảo vệ bằng mật khẩu. SQL Engine không thể mở Workbook có mật khẩu. Gỡ mật khẩu trước khi thực hiện truy vấn. Kết nối nguồn dữ liệu
16 Kết nối nguồn dữ liệu The workbook is encrypted. Workbook đã được mã hóa. SQL Engine không hỗ trợ mở Workbook được mã hóa. Giải mã hoặc lưu thành bản không mã hóa. Kết nối nguồn dữ liệu
17 Cú pháp SQL Syntax error in FROM clause. Sai cú pháp trong mệnh đề FROM. Sai tên Sheet, thiếu $, thiếu [] hoặc sai cú pháp JOIN. Kiểm tra lại mệnh đề FROM. FROM
18 Cú pháp SQL Syntax error (missing operator) in query expression. Thiếu toán tử hoặc biểu thức không hợp lệ. Thiếu AND, OR, =, LIKE... hoặc thiếu dấu ngoặc. Kiểm tra biểu thức trong WHERE, HAVING, ON hoặc SELECT. WHERE / HAVING / ON / SELECT
19 Cú pháp SQL Too few parameters. Expected n. SQL Engine không tìm thấy một hoặc nhiều trường hoặc tham số được tham chiếu. Sai tên trường, sai bí danh hoặc sai tên hàm. Kiểm tra lại tất cả tên trường trong câu lệnh SQL. SELECT / WHERE / GROUP BY / HAVING / ORDER BY
20 Cú pháp SQL No value given for one or more required parameters. Thiếu giá trị cho tham số hoặc trường bắt buộc. Sai tên trường hoặc thiếu tham số truyền vào. Kiểm tra tham số và tên cột. WHERE
21 Cú pháp SQL Undefined function 'TênHàm' in expression. Hàm được sử dụng không được SQL Engine hỗ trợ. Viết sai tên hàm hoặc sử dụng hàm không có trong SQL Excel. Sử dụng các hàm được chương trình hỗ trợ. Biểu thức
22 Kiểu dữ liệu Data type mismatch in criteria expression. Kiểu dữ liệu trong biểu thức không tương thích. So sánh chuỗi với số, ngày với văn bản... Kiểm tra kiểu dữ liệu của các giá trị so sánh. WHERE / HAVING
23 Kiểu dữ liệu Syntax error in date in query expression. Giá trị ngày tháng không đúng cú pháp. Thiếu dấu # hoặc sai định dạng ngày. Sử dụng đúng định dạng #yyyy-mm-dd#. WHERE / Biểu thức
24 Kiểu dữ liệu Type conversion failed. Không thể chuyển đổi dữ liệu sang kiểu yêu cầu. Dữ liệu không đúng định dạng hoặc không hợp lệ. Kiểm tra dữ liệu nguồn và sử dụng đúng hàm chuyển đổi. Biểu thức
25 Kiểu dữ liệu Invalid use of Null. Sử dụng giá trị NULL trong phép toán hoặc biểu thức không hợp lệ. Không kiểm tra NULL trước khi tính toán. Kiểm tra NULL bằng IS NULL hoặc thay thế giá trị mặc định. Biểu thức
26 Tính toán Division by zero. Thực hiện phép chia với mẫu số bằng 0. Dữ liệu có giá trị bằng 0. Kiểm tra mẫu số trước khi thực hiện phép chia. Biểu thức
27 Tính toán Overflow. Giá trị vượt quá phạm vi của kiểu dữ liệu. Dữ liệu quá lớn hoặc sai kiểu dữ liệu. Kiểm tra dữ liệu hoặc chuyển sang kiểu dữ liệu phù hợp. Biểu thức
28 JOIN / GROUP BY Ambiguous column name. SQL Engine không xác định được trường cần sử dụng vì có nhiều trường trùng tên. Hai hoặc nhiều bảng có cùng tên cột. Ghi rõ tên bảng trước tên trường, ví dụ: [Employees$].[Mã NV]. JOIN / SELECT
29 ORDER BY ORDER BY clause conflicts with DISTINCT. Không thể sắp xếp theo trường không có trong kết quả SELECT DISTINCT. ORDER BY sử dụng trường không xuất hiện trong SELECT. Chỉ sắp xếp theo các trường có trong danh sách SELECT. ORDER BY
30 Giới hạn hệ thống Query is too complex. Câu lệnh SQL vượt quá khả năng xử lý của SQL Engine. Quá nhiều JOIN, UNION, Subquery hoặc biểu thức lồng nhau. Chia truy vấn thành nhiều câu lệnh nhỏ hoặc xử lý một phần bằng VBA. Toàn bộ câu lệnh SQL

Lưu ý giúp hạn chế lỗi

Nhóm Lưu ý Ví dụ
Nguồn dữ liệu Kiểm tra tập tin Excel tồn tại trước khi thực hiện truy vấn. D:\Data\Sales.xlsx phải tồn tại và có thể mở bằng Excel.
Nguồn dữ liệu Đảm bảo tập tin không bị hỏng, không bị mã hóa hoặc bảo vệ bằng mật khẩu. Mở được trực tiếp bằng Microsoft Excel trước khi truy vấn.
Nguồn dữ liệu Không mở Workbook ở chế độ Exclusive hoặc để nhiều chương trình cùng ghi dữ liệu vào một thời điểm. Đóng các kết nối đang sử dụng Workbook trước khi truy vấn.
Nguồn dữ liệu Đảm bảo có quyền đọc tập tin và thư mục chứa tập tin. Kiểm tra quyền truy cập đối với thư mục mạng hoặc OneDrive.
Kết nối dữ liệu Sử dụng đúng Provider và Connection String tương ứng với định dạng .xls, .xlsx, .xlsm. Microsoft.ACE.OLEDB.12.0 cho tệp .xlsx.
FROM Worksheet phải được đặt trong dấu ngoặc vuông ([]) và kết thúc bằng ký tự $. FROM [Employees$]
FROM Nếu sử dụng Named Range thì không thêm ký tự $. FROM [EmployeeList]
FROM Kiểm tra chính xác tên Worksheet, Named Range và phạm vi dữ liệu. FROM [Data2026$A5:Z]
Tên trường Đối với tên trường có khoảng trắng, tiếng Việt hoặc ký tự đặc biệt, luôn đặt trong dấu ngoặc vuông ([]). [Mã nhân viên], [Ngày giao]
Tên trường Không sử dụng tên trường không tồn tại trong SELECT, WHERE, GROUP BY, HAVING, ORDER BY hoặc JOIN. Kiểm tra đúng tiêu đề dữ liệu trong Excel.
Kiểu dữ liệu Chuỗi ký tự phải đặt trong dấu nháy đơn ('...'). 'Hà Nội'
Kiểu dữ liệu Giá trị số không đặt trong dấu nháy đơn. 1000
Kiểu dữ liệu Giá trị ngày tháng phải đặt trong dấu #...#. #2026-07-11#
Kiểu dữ liệu So sánh các giá trị cùng kiểu dữ liệu để tránh lỗi chuyển đổi kiểu. Không so sánh chuỗi với số hoặc ngày tháng.
Giá trị NULL Kiểm tra giá trị rỗng bằng IS NULL hoặc IS NOT NULL, không sử dụng = NULL hoặc <> NULL. WHERE [Email] IS NULL
Hàm Chỉ sử dụng các hàm được SQL Excel hỗ trợ. ROUND(), LEN(), INSTR(), FORMAT()...
JOIN Khi nhiều bảng có cùng tên trường, luôn ghi rõ tên bảng trước tên trường. [Employees$].[Mã NV]
JOIN Kiểm tra điều kiện trong mệnh đề ON để tránh trả về kết quả không mong muốn. ON [A].[ID]=[B].[ID]
GROUP BY Mọi trường trong SELECT không sử dụng hàm tổng hợp đều phải xuất hiện trong GROUP BY. SELECT [Phòng ban], SUM([Lương]) GROUP BY [Phòng ban]
HAVING Chỉ sử dụng HAVING để lọc kết quả sau khi nhóm dữ liệu. HAVING SUM([Doanh thu]) > 1000000
ORDER BY Chỉ sắp xếp theo trường có trong kết quả truy vấn khi sử dụng DISTINCT. SELECT DISTINCT [Mã NV] ORDER BY [Mã NV]
Biểu thức Kiểm tra mẫu số trước khi thực hiện phép chia để tránh lỗi chia cho 0. IIF([SL]=0,NULL,[Tiền]/[SL])
Biểu thức Kiểm tra dữ liệu trước khi chuyển đổi kiểu dữ liệu. CINT([Số lượng])
Câu lệnh SQL Nên kiểm tra từng phần (SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY) trước khi ghép thành câu lệnh hoàn chỉnh. Thực hiện truy vấn từng bước để dễ xác định lỗi.
Hiệu năng Hạn chế tạo câu lệnh quá dài hoặc quá nhiều JOIN, UNION và Subquery trong một truy vấn. Chia thành nhiều truy vấn nhỏ nếu cần.
Hiệu năng Chỉ truy vấn các cột cần sử dụng thay vì luôn dùng SELECT *. SELECT [Mã NV], [Họ tên] thay vì SELECT *.
×