Đánh giá chủ đề:
  • 6 Votes - 3.33 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Cài đặt ODBC -nền tảng kết nối Access và nguồn dữ liệu khác
#11
Em cài lên bản winxp sp3 bác ạ; Em làm trong ngành ngân hàng nên dữ liệu xuất ra lớn lắm bác ạ, mỗi ngày dữ liệu thô xuất ra khoảng 30.000 record nên em muốn dùng sql server, để em thử cài lên win2003 server xem sao
Reply
Những người đã cảm ơn
#12
Đã tìm được nguyên nhân rồi các bác ạ ( e mừng quá!). Thì ra là bản của em là sql server sp2, em Upgrade lên sp3 connect được ngay. Cảm ơn noname nhiều bác nhiệt tình với em quá.
Nhân đây em cũng tặng các bác 1 đoạn code dùng để connect đến sql server mà không cần phải khai báo system dsn hay user dsn nữa, rất tiện dụng khi đem đến các máy khác trong mạng lan:
Function AttachDSNLessTable(stLocalTableName As String, stRemoteTableName As String, stServer As String, stDatabase As String, Optional stUsername As String, Optional stPassword As String)
On Error GoTo AttachDSNLessTable_Err
Dim td As TableDef
Dim stConnect As String

For Each td In CurrentDb.TableDefs
If td.Name = stLocalTableName Then
CurrentDb.TableDefs.Delete stLocalTableName
End If
Next

If Len(stUsername) = 0 Then
'//Use trusted authentication if stUsername is not supplied.
stConnect = "ODBC;DRIVER=SQL Server;SERVER=" & stServer & ";DATABASE=" & stDatabase & ";Trusted_Connection=Yes"
Else
'//WARNING: This will save the username and the password with the linked table information.
stConnect = "ODBC;DRIVER=SQL Server;SERVER=" & stServer & ";DATABASE=" & stDatabase & ";UID=" & stUsername & ";PWD=" & stPassword
End If
Set td = CurrentDb.CreateTableDef(stLocalTableName, dbAttachSavePWD, stRemoteTableName, stConnect)
CurrentDb.TableDefs.Append td
AttachDSNLessTable = True
Exit Function

AttachDSNLessTable_Err:

AttachDSNLessTable = False
MsgBox "AttachDSNLessTable encountered an unexpected error: " & Err.Description

End Function

Em xin giải thích qua cách sử dụng hàm: Hàm này có 5 đối số
stLocalTableName: Tên Table muốn đặt tên trong ngăn table của access (Tùy bạn nhưng phải theo chuẩn đặt tên table tức là không có các ký tự đặc biệt)
stRemoteTableName: Table trên Sql server (Tên table này phải chính xác nếu không nó cự lại không chạy ngay)
stDatabase: Tên Database chứa table mà ta muốn connect
stUsername,stPassword: User và mật khẩu để đăng nhập vào database ( Cái này là do lúc bạn cài đặt sql, nếu không đặt mật khẩu thì bạn để trống trong dấu ngoặc kép " ")

VD: trong sự kiện form open em đặt đoạn code như sau
Call AttachDSNLessTable("Don_dat_hang","Orders","Northwind","sa","t123") là em đã link được table Orders trong database Northwind rồi em đặt tên trong table của em là don_dat_hang

Thôi cám ơn cả nhà nhé!


Reply
Những người đã cảm ơn Noname , haquocquan , hadangpr , dannynguyen1980 , quanghoasla
#13
Em vừa phát hiện ra cái hay của đoạn code trên ở chỗ: Khi ta đã connect được thì đem file mdb sang máy khác không cần chạy lại đoạn code connect trên mà vấn dùng luôn các tabe đã connect. Ta chỉ khi nào có các table mới cần connect mới cần gọi để chạy đoạn code đó
Reply
Những người đã cảm ơn
#14
Thanks bác, thế là bổ sung vào kho tàng thủ thuật access thêm 1 món.
Trước nay Noname toàn dùng 1 file reg để đăng ký! qua máy khác phải dùng file reg
Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#15
Bác Noname cho em hỏi là: khoảng 50 người truy cập vào cùng 1 lúc liệu có chậm lắm không ạ; Vì từ trước đến nay em toàn dùng Backend là file mdb nên em chưa biết qua ODBC đến SQL server có ổn lắm không khi mà nhiều người cùng truy cập
Reply
Những người đã cảm ơn
#16
(07-01-11, 01:22 PM)vba Đã viết: Bác Noname cho em hỏi là: khoảng 50 người truy cập vào cùng 1 lúc liệu có chậm lắm không ạ; Vì từ trước đến nay em toàn dùng Backend là file mdb nên em chưa biết qua ODBC đến SQL server có ổn lắm không khi mà nhiều người cùng truy cập

50 người 1 lúc thì cổng mạng chắc cho lớn lớn 1 chút, tốt nhất là ngõ ra hub 1GB . MS SQL server có hỗ trợ stored procedures. Nghiên cứu cái đó nó cải thiện được hơn 50% tốc độ đấy, nhưng ngốn ram kinh lắm! Về lý thuyết thì kết nối tới SQL server ổn định hơn nhiều so với kết nối Access- Access, nhưng thực tế nếu mạng quá chậm thì nó hay bị lỗi time out. trong khi kết nối access- access thì lỗi nguyên file mdb.
Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#17
Bác Noname ơi giúp em với:
Sau khi link được đến sql server em vào thử 1 bàng để xóa thử 1 record thì nó báo lỗi "Recort not deleted. Data is read - only"
Không biết có phải phân quyền gì trong sql không nhỉ
Thế nhưng em xóa record trong table "Orders Details" trong database Northwind thì lại được
Bác giúp em vụ này với
Reply
Những người đã cảm ơn
#18
(07-01-11, 05:30 PM)vba Đã viết: Bác Noname ơi giúp em với:
Sau khi link được đến sql server em vào thử 1 bàng để xóa thử 1 record thì nó báo lỗi "Recort not deleted. Data is read - only"
Không biết có phải phân quyền gì trong sql không nhỉ
Thế nhưng em xóa record trong table "Orders Details" trong database Northwind thì lại được
Bác giúp em vụ này với
Phải chứ, SQL server quy định rất rõ ràng, user nào được thêm, bớt sửa xóa field nào cụ thể lắm. Bác dùng công cụ enterprise manager để kiểm tra từng table thử.
Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#19
Các bác cao thủ access cho e hỏi một chút nhé:
E đã connect và link table từ SQL 2005 vào access xong, tuy nhiên khi e muốn update, delete, hoặc add thêm record mới vào table này thì không được..
Rất mong các cao thủ chỉ giùm e cách để link table từ SQL 2005 đến access để có thể tương tác với nhau thông qua ứng dụng được tạo bằng access..Tất cả các thay đổi, cập nhật và truy xuất dữ liệu đều được thực hiện trên file .mdb..
Vì e là newbike nên còn bỡ ngỡ đoạn này quá...Rất mong được các bác chỉ giáo cụ thể.Thanks các bác rất nhiều!

Chữ ký của cong_agribankPT Hãy chia sẻ kinh nghiệm cùng mình trên ThuThuatAccess nhé! Chúc vui vẻ rose
Reply
Những người đã cảm ơn
#20
(03-03-11, 03:19 PM)cong_agribankPT Đã viết: Các bác cao thủ access cho e hỏi một chút nhé:
E đã connect và link table từ SQL 2005 vào access xong, tuy nhiên khi e muốn update, delete, hoặc add thêm record mới vào table này thì không được..
Rất mong các cao thủ chỉ giùm e cách để link table từ SQL 2005 đến access để có thể tương tác với nhau thông qua ứng dụng được tạo bằng access..Tất cả các thay đổi, cập nhật và truy xuất dữ liệu đều được thực hiện trên file .mdb..
Vì e là newbike nên còn bỡ ngỡ đoạn này quá...Rất mong được các bác chỉ giáo cụ thể.Thanks các bác rất nhiều!

Bạn link vào access bằng user mà user đó phải có quyền thêm/sửa xóa table trên MS SQL server của bạn. Để chắc chắn mình thao tác đúng, bạn thử kết nối bằng User SA thử xem!
Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  Xây dựng Class Modules trong Access ( Cơ bản đến Nâng cao) maidinhdan 2 189 13-11-16, 05:32 PM
Bài mới nhất: cpucloi
  Ms Access VBA và Google drive, một vài ý tưởng trong chia sẻ và đồng bộ số liệu... paulsteigel 46 3,862 07-10-16, 02:43 PM
Bài mới nhất: kieu manh
  Xuất từ Access ra excel mà không cần phải có file định sẵn trungminh 3 358 18-09-16, 02:33 AM
Bài mới nhất: maidinhdan
  [Hỏi] Xuất dữ liệu từ Access ra Excel bị ẩn cột Minh Tiên 0 137 02-09-16, 05:38 PM
Bài mới nhất: Minh Tiên
  Export dữ liệu sang Word ( Nhiều dòng trong sub) danhxetnghiem 26 3,099 01-08-16, 11:08 AM
Bài mới nhất: jeck09nt

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ