• Cài đặt ODBC -nền tảng kết nối Access và nguồn dữ liệu khác
  • RE: Cài đặt ODBC -nền tảng kết nối Access và nguồn dữ liệu khác

    vba > 06-01-11, 08:58 PM

    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
  • RE: Cài đặt ODBC -nền tảng kết nối Access và nguồn dữ liệu khác

    vba > 06-01-11, 10:19 PM

    Đã 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é!


  • RE: Cài đặt ODBC -nền tảng kết nối Access và nguồn dữ liệu khác

    vba > 06-01-11, 10:42 PM

    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 đó
  • RE: Cài đặt ODBC -nền tảng kết nối Access và nguồn dữ liệu khác

    Noname > 06-01-11, 11:01 PM

    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
  • RE: Cài đặt ODBC -nền tảng kết nối Access và nguồn dữ liệu khác

    vba > 07-01-11, 01:22 PM

    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
  • RE: Cài đặt ODBC -nền tảng kết nối Access và nguồn dữ liệu khác

    Noname > 07-01-11, 01:34 PM

    (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.
  • RE: Cài đặt ODBC -nền tảng kết nối Access và nguồn dữ liệu khác

    vba > 07-01-11, 05:30 PM

    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
  • RE: Cài đặt ODBC -nền tảng kết nối Access và nguồn dữ liệu khác

    Noname > 07-01-11, 07:16 PM

    (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ử.
  • RE: Cài đặt ODBC -nền tảng kết nối Access và nguồn dữ liệu khác

    cong_agribankPT > 03-03-11, 03:19 PM

    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!

  • RE: Cài đặt ODBC -nền tảng kết nối Access và nguồn dữ liệu khác

    Noname > 03-03-11, 04:25 PM

    (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!