Căn bản về kết nối với dữ liệu SQL Server từ Microsoft Access (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

lehongduc

Thành viên chính thức
Tham gia
14/9/06
Bài viết
88
Được thích
149
Chào các Bạn,
Tôi vừa đọc được bài hay đăng trên internet về việc kết nối đến dữ liệu SQL Server từ MS. Access.
Nhận thấy bài viết đề cập đến nhiều nội dung căn bản về vấn đề này một cách dễ hiểu, có cả code minh hoạ, thuận tiện cho các Bạn mới tìm hiểu, nên tôi xin giới thiệu với các Bạn bài viết này.

Link nguồn: http://www.accessmvp.com/DJSteele/DSNLessLinks.html
và: http://www.carlprothman.net/Default.aspx?tabid=87#OLEDBProviderForODBCDatabases

Để lưu lại tài liệu trên, phòng khi link này bị huỷ, các Bạn có thể tải xuống file đính kèm.
 

File đính kèm

Lần chỉnh sửa cuối:
Chào các Bạn,
Tôi xin trích đăng toàn văn 1 đoạn trong tài liệu tìm được từ Internet (đính kèm) về sự khác nhau trong câu lệnh SQL sử dụng trong Access (Jet) và SQL Server (SS).
Core SQL Dialect Differences

A selection of fundamental differences of SQL Server's implementation of Structured Query Language from Jet:

T-SQL string delimiter uses only single quote.
Jet: SELECT * FROM Orders WHERE ShipCountry = "France"
SS : SELECT * FROM Orders WHERE ShipCountry = 'France'

Standard Wildcard Characters are % and _ instead of * and ?
Jet: … WHERE ShipCountry Like "F*"
SS : … WHERE ShipCountry Like 'F%'

Dates are also delimited through single quote ' and not octothorpe #. US format remains the default.
Jet: … WHERE OrderDate Between #12/01/2007# AND #12/31/2007#
SS : … WHERE OrderDate Between '12/01/2007' AND '12/31/2007'

String concatenation uses + symbol and not & (as can be used in Jet) - Nulls therefore do propagate.
Jet: SELECT FirstName & " " & LastName As FullName FROM Employees
SS : SELECT FirstName + ' ' + LastName As FullName FROM Employees

For such circumstances the Access Nz function maps to T-SQL IsNull (or the more powerful Coalesce)
Jet: SELECT Nz(Region, 'N/A') FROM Employees
SS : SELECT IsNull(Region, 'N/A') FROM Employees

VBA's IsNull is not exactly represented (however in either SQL dialect "Is Null" is a better choice)
Jet: SELECT * FROM Employees WHERE Region Is Null
SS : SELECT * FROM Employees WHERE Region Is Null

VBA's Immediate If function is implemented with ANSI SQL Case statements
Jet: SELECT IIF(Region Is Null, 'N/A', Region) FROM Employees
SS : SELECT CASE WHEN Region Is Null THEN ' N/A' ELSE Region END FROM Employees

VBA Type conversion functions can be handled with CAST or CONVERT calls
Jet: SELECT CStr([Birth Date]) FROM Employees
SS : SELECT CONVERT(varChar, Region) FROM Employees

Data Types in T-SQL are *not* implicitly converted for you!
e.g., Jet will silently convert the numeric value to concatenate Text and Integer fields in a SQL statement

Jet: SELECT "Order Dated - " & [Order Date] As FullNameRef FROM Orders
SS : SELECT 'Order Dated - ' + CONVERT(varChar, [Order Date]) As FullNameRef

Boolean (Yes/No) Data Types in Jet (stored as 0 or -1) are represented by Bit fields in SQL Server (stored as 0 or 1). An ODBC linked table will perform the conversion for you – but if you're writing the SQL yourself you need to know. T-SQL also has no "True" and "False" literal constants.
Jet: SELECT * FROM Products WHERE Discontinued = True
SS : SELECT * FROM Products WHERE Discontinued = 1

The aliasing keyword "AS" is optional in T-SQL for both tables and columns – in Jet tables only.
Jet: SELECT [Unit Price] * Quantity As TotalAmt FROM [Order Details] tblDetails
SS : SELECT [Unit Price] * Quantity TotalAmt FROM [Order Details] tblDetails

You cannot reference aliased columns in T-SQL
Jet: SELECT [Unit Price] * Quantity As TotalAmt, TotalAmt/10 As Installment FROM [Order Details]
SS : SELECT [Unit Price] * Quantity As TotalAmt, ([Unit Price] * Quantity)/10 As Installment FROM [Order Details]
 

File đính kèm

Chào các Bạn,
Tôi xin trích đăng toàn văn 1 đoạn trong tài liệu tìm được từ Internet (đính kèm) về sự khác nhau trong câu lệnh SQL sử dụng trong Access (Jet) và SQL Server (SS).

Còn trường hợp sử dụng Crosstab Query nữa anh à.
 
Còn trường hợp sử dụng Crosstab Query nữa anh à.

Chà, cái vụ này có nhiều chuyện để bàn quá, nó hơi "chuyên sâu", nên phải hẹn các Bạn một bài khác chuyên sâu luôn vậy.
Hoặc là các Bác nào đang có thời gian xin mần một bài về chuyện "Tạo và sử dụng Crosstab Query trong SQL Server" cho bà con tham khảo với.
 
Chà, cái vụ này có nhiều chuyện để bàn quá, nó hơi "chuyên sâu", nên phải hẹn các Bạn một bài khác chuyên sâu luôn vậy.
Hoặc là các Bác nào đang có thời gian xin mần một bài về chuyện "Tạo và sử dụng Crosstab Query trong SQL Server" cho bà con tham khảo với.

Hy vọng anh tiếp tục chia sẻ đề tài này, đây là công cụ hữu dụng và rất cần thiết cho người làm báo cáo.
 
Web KT

Bài viết mới nhất

Back
Top Bottom