• Thứ Bảy, 15/01/2011 11:06 (GMT+7)

    Trả lời thư bạn đọc

    TS. Nguyễn Văn Hiệp
    Mục giải đáp thắc mắc của bạn đọc do TS. Nguyễn Văn Hiệp phụ trách.

    Hỏi:
    Xin hướng dẫn lập công thức tính chung trị giá cho mọi lô đất khi biết chiều dài, chiều rộng và giá đất của từng vị trí. Có 2 loại vị trí : 1). Nếu chiều dài lô đất từ 50m trở xuống thì thuộc vị trí 1, 2). Ngược lại lô đất thuộc vị trí 2. Giá đất lô ở vị trí 1 là 1.000.000đ/m2, còn giá lô ở vị trí 2 là 500.000đ.
    Với các dữ liệu đầu vào được miêu tả như trên và đã được nhập vào bảng tính Excel như sau, ví dụ:
    Tên lô Dài Rộng
    Lô số 1 80 6
    Lô số 2 30 5

    Trả lời:
    Trong Excel (hay trong nhiều phần mềm khác), khi cần giải quyết 1 chức năng nào đó thì bạn có thể chọn 1 trong 2 cách giải quyết sau:

    - Nếu biết hàm sẵn có trong môi trường giải quyết được chức năng cần thực hiện thì bạn hãy dùng hàm đó cho dễ dàng và nhanh chóng.

    - Nếu không có hàm sẵn có trong môi trường (có thể do bạn chưa biết rõ) thì bạn hãy viết 1 hàm mới cho riêng mình để giải quyết vấn đề mà mình muốn, người ta gọi hàm định nghĩa mới này là "user-defined function". Sau khi đã định nghĩa, bạn có thể dùng hàm mới của mình y như dùng hàm sẵn có của hệ thống.

    Giả sử bạn đã nhập thông tin các lô đất vào 1 bảng tính Excel trong đó cột A chứa tên lô đất, cột B chứa độ dài lô đất, cột C chứa độ rộng lô đất, cột D miêu tả loại lô đất (1, 2), cột E miêu tả giá thành lô đất, giá đơn vị từng loại đất được nhập vào ở cell nào đó (thí dụ G1 và G2). Bạn có thể viết và dùng các hàm tự định nghĩa để xác định loại lô đất và giá thành từng lô theo qui trình điển hình sau đây:

    1. Chạy Excel, mở file Excel chứa dữ liệu cần xử lý.

    2. Kiểm tra nội dung ở các cột A, B, C xem đã có nội dung đúng theo yêu cầu chưa, nếu chưa thì hiệu chỉnh lại theo mong muốn.
    3. Chọn menu Tools.Macro.Visual Basic Editor để mở cửa sổ soạn code VBA.

    4. Dời chuột về phần tử gốc của cửa sổ "Project" nằm ở trên trái màn hình, nhấn phải chuột vào phần tử gốc để hiển thị menu lệnh, chọn mục Insert.Module để tạo mới 1 module mã nguồn VBA. Khi cửa sổ mã nguồn trống hiển thị, bạn hãy viết 2 hàm chức năng sau đây vào:

    'hàm xác định loại lô đất
    Public Function Loailo(rg As Range) As Integer
    If rg.Cells(1, 1) <= 50 Then
    Loailo = 1
    Else
    Loailo = 2
    End If
    End Function

    'hàm xác định giá lô đất
    Public Function Giathanh(rg As Range) As Double
    Dim loai As Integer
    Dim dientich As Double
    'tính diện tích lô đất
    dientich = rg.Cells(1, 1) * rg.Cells(1, 2)
    'xác định loại lô đất
    loai = Loailo(rg)
    'xác định giá lô đất theo loại của nó
    If loai = 1 Then
    Giathanh = dientich * Range("G1").Value
    Else
    Giathanh = dientich * Range("G2").Value
    End If
    End Function

    5. Chọn menu File.Close and Return... để quay về cửa sổ hiển thị bảng tính.

    6. Chọn cell D1, nhập nội dung sau vào cell:

    =Loailo(B1)

    7. Bạn sẽ thấy ngay loại của lô đất có chiều dài được qui định ở cell B1. Hãy copy nội dung cell D1 và dán xuống các cell khác trong cột D để xác định tự động loại các lô đất còn lại.

    8. Chọn cell E1, nhập nội dung sau vào cell:

    =Giathanh(B1)

    9. Bạn sẽ thấy ngay giá thành của lô đất có chiều dài được qui định ở cell B1. Hãy copy nội dung cell E1 và dán xuống các cell khác trong cột E để xác định tự động giá thành các lô đất còn lại.

    Hỏi:
    Tôi có 1 bảng trong Excel gồm 2 cột tháng và mã loại, làm thế nào thống kê số lần xuất mã loại theo tháng? Nếu dùng hàm sumproduct thì bị giới hạn phải gõ đúng ô cuối cùng của cột nhưng bảng này lại được cập nhật thường xuyên. Ví dụ SUMPRODUCT((A1:A90=2)*(B1:B90=CL)*1) thì phải biết dòng cuối là dòng 90 để gõ vào.

    Trả lời:
    Chúng ta biết rằng mỗi sheet Excel có độ lớn là 65536 hàng và hàm SUMPRODUCT xem các cell rỗng hay cell có nội dung không phải số là cell có nội dung = 0. Như vậy, nếu số phần tử trong sheet của bạn thay đổi theo thời gian thì bạn có thể dùng hàm SUMPRODUCT với kích thước maximum như sau:

    =SUMPRODUCT((A1:A65535=2)*(B1:B65535="CL"))

    sẽ tính được số lần mã loại "CL" trong tháng 2 cho dù số hàng dữ liệu của bạn ít hay nhiều.

    Hỏi:
    Tôi có 1 TableDulieu có nhiều cột và nhiều người dùng chung, làm sao để những người dùng có mã TO chỉ được xem và nhập dữ liệu cột 1 và 2, những người dùng có mã LY thì chỉ xem và nhập dữ liệu được cột 3 và 4...

    Trả lời:
    Bạn không nói rõ bảng dữ liệu đang được phần mềm nào quản lý (Excel, FoxPro, Access, SQL Server, MySQL, Oracle Server...) nên chúng tôi chỉ trả lời tổng quát. Tùy theo bảng dữ liệu do phần mềm nào quản lý mà khả năng bảo vệ việc truy xuất các thông tin trong bảng sẽ rất khác nhau. Ở đây chúng tôi sẽ giới thiệu khả năng bảo mật thông tin trong các bảng dữ liệu Excel.

    Excel quản lý việc truy xuất các thông tin trong worksheet ở nhiều mức độ khác nhau và có dựa vào account cấp hệ thống (account Windows hay account mạng). Trên các version Windows hiện nay (thí dụ Win XP), nó cho phép người dùng sử dụng máy thông qua account, mỗi người dùng máy phải có acount được cấp với một số quyền truy xuất tài nguyên được xác định bởi người quản trị máy. Sau đây là qui trình điển hình để tạo account người dùng trên Win XP:

    1. Khởi động Windows và đăng nhập vào account Administrator (thường là account mặc định).

    2. Chạy Start.Control Panel, nhnhấn kép chuột vào icon "User Accounts" để hiển thị cửa sổ quản lý account.

    3. Chọn mục "Create a new account" để hiển thị cửa sổ nhập tên account mới, nhập tên account mới vào textbox tương ứng, nhnhấn button Next để hiển thị cửa sổ kế.

    4. Chọn loại phân quyền account : có hạn chế (Limitted) hay không hạn chế quyền (administrator), nhấn button "Create Account" để hoàn tất việc tạo account mới.

    5. Nhấn chuột vào icon miêu tả account vừa tạo để hiển thị cửa sổ xem và thay đổi các thông tin về account tương ứng. Chọn mục "Create a password" để hiển thị cửa sổ thiết lập password. Nhập password cho account rồi nhấn button "Create Password". Nhấn button Back để quay về cửa sổ trước.

    5. Lặp lại 3 bước 3, 4 và 5 để tạo thêm các account khác rồi thông báo cho từng người tương ứng biết để dùng được máy này.

    Mỗi file *.xls mà bạn tạo ra được gọi là 1 workbook, mỗi workbook có thể chứa nhiều worksheet (bảng dữ liệu), mỗi worksheet là ma trận 2 chiều gồm nhiều cell dữ liệu. Excel cung cấp nhiều mức độ bảo vệ việc truy xuất thông tin trong file Excel như sau:

    1. Tự do truy xuất: đây là chế độ mặc định mỗi khi bạn tạo mới 1 file Excel.

    2. Chỉ cho phép mở file để làm việc nếu biết password. Để thiết lập chế độ này cho file Excel, bạn hãy mở file đó (lúc đầu chưa được bảo vệ), chọn menu Tools.Option, chọn tag Security, nhập password được dùng để mở file vào textbox "Password to open", rồi nhấn button Ok. Khi được yêu cầu nhập lại password, hãy nhập lại đúng password đã nhập rồi nhấn Ok. Chọn menu File.Save để lưu file với các chế độ bảo vệ mới. Từ đây trở đi, mỗi khi ai đó mở file này, nó sẽ yêu cầu nhập password, người nào không có quyền (không biết password) sẽ không mở được file, người nào nhập đúng pasword thì máy sẽ mở file và cho phép người dùng làm việc tự do với file (xem/cập nhật/lưu kết quả).

    3. Chỉ cho phép mở file để đọc nếu biết password mở file và chỉ cho phép cập nhật file nếu biết thêm password để cập nhật. Để thiết lập chế độ này cho file Excel, bạn hãy mở file đó (lúc đầu chưa được bảo vệ), chọn menu Tools.Option, chọn tag Security, nhập password được dùng để mở file vào textbox "Password to open", nhập password được dùng để cập nhật nội dung file vào textbox "Password to Modify" rồi nhấn Ok. Khi được yêu cầu nhập lại password, hãy nhập lại tuần tự đúng 2 password đã nhập rồi nhấn Ok. Chọn menu File.Save để lưu file với các chế độ bảo vệ mới. Từ đây trở đi, mỗi khi ai đó mở file này, nó sẽ yêu cầu nhập password để mở, người nào không có quyền (không biết password) sẽ không mở được file, người nào nhập đúng pasword thì máy sẽ hỏi thêm paswword để cập nhật. Nếu ai biết password cập nhật thì mới cập nhật được file, còn ai không có password cập nhật thì chỉ xem nội dung (hay cập nhật tạm thời trên màn hình chứ không thể lưu nội dung cập nhật lên file).

    4. Chỉ cho phép thêm/bớt worksheet, thay đổi kích thước cửa sổ, thay đổi worksheet hiển thị nếu biết password. Để thiết lập chế độ này, bạn hãy mở file đó (lúc đầu chưa được bảo vệ), chọn menu Tools.Protection.Protect Workbook, chọn cả 2 checkbox Structure và Windows, nhập password rồi nhấn Ok. Khi được yêu cầu nhập lại password, hãy nhập lại đúng password đã nhập rồi nhấn Ok. Chọn menu File.Save để lưu file với các chế độ bảo vệ mới. Từ đây trở đi, mỗi khi ai đó mở file này, nó chỉ hiển thị cửa sổ chứa thông tin lúc lưu file, người dùng chỉ có quyền làm việc với cửa sổ hiện hành, không có quyền phóng to/thu nhỏ cửa sổ hiện hành, không thể thêm/bớt worksheet, không thể chuyển sang worksheet khác...

    5. Chỉ cho phép cập nhật nội dung 1 worksheet xác định nếu biết password. Để thiết lập chế độ này, bạn hãy mở file đó (lúc đầu chưa được bảo vệ), chọn và hiển thị worksheet cần bảo vệ, chọn menu Tools.Protection.Protect Worksheet, nhập password rồi nhấn Ok. Khi được yêu cầu nhập lại password, hãy nhập lại đúng password đã nhập rồi nhấn Ok. Chọn menu File.Save để lưu file với các chế độ bảo vệ mới. Từ đây trở đi, mỗi khi ai đó mở file và làm việc với worksheet có bảo vệ, máy chỉ cho xem chứ không cho phép cập nhật nội dung.

    6. Cho phép người có account xác định được phép cập nhật 1 vùng cell xác định trong 1 worksheet có bảo vệ theo mức 5 ở trên. Để thiết lập chế độ này, bạn hãy thực hiện các bước sau:

    6.1 Mở file Excel (hay tạo mới), chọn và hiển thị worksheet cần bảo vệ, "unprotect" worksheet nếu nó đang được bảo vệ (bằng cách chọn menu Tools.Protection.Unprotect Sheet).

    6.2 Chọn menu Tools.Protection.Allow users to edit Ranges.

    6.3 Nhấn button New để hiển thị "New Range", nhập tên nhận dạng của vùng cell cần bảo vệ, nhập địa chỉ xác định vùng cell cần bảo vệ (thí dụ =$A:$B miêu tả toàn bộ 2 cột A và B), nhấn button Permissions, nhấn button Add để hiển thị cửa sổ "Select users...". Nhấn Advanced, nhấn "Find Now" để hiển thị danh sách các account hiện có trên máy, duyệt tìm và chọn account được phép cập nhật vùng cell tương ứng. Nhấn Ok nhiều lần để quay về cửa sổ "Allow users to edit Ranges".

    6.4 Lặp lại bước 6.3 nhiều lần để xác lập nhiều vùng cell khác nhau, mỗi vùng cell cho 1 account xác định cập nhật.

    6.5 Đang ở cửa sổ "Allow users...", nhấn button "Protect sheet", nhập password rồi nhấn Ok. Khi được yêu cầu nhập lại password, hãy nhập lại đúng password đã nhập rồi nhấn Ok. Chọn menu File.Save để lưu file với các chế độ bảo vệ mới. Từ đây trở đi, mỗi khi ai đó (đang dùng Windows với account xác định) mở file và làm việc với worksheet có bảo vệ, người đó chỉ có quyền cập nhật vùng cell mà account được phép cập nhật, còn các cell khác thì người đó chỉ xem chứ không cập nhật được.

    Hỏi:
    Xin hỏi cách định dạng trong Excel: Ở ô B3 khi nhập dãy số (hoặc dạng text) 6868682312345678, tôi muốn sau khi nhập dãy số này và Enter sẽ có dạng như sau: 6868-6823-1234-5678
    Tôi vào menu Format.Cells.Number, chọn custom định dạng: ####-####-####-#### nhưng khi nhập dãy số trên lại hiển thị: 6868-6823- 1234-5670.
    Có cần phải viết module (hay macro) để giải quyết vấn đề trên?

    Trả lời:
    Nếu bạn nhập dãy các ký số thập phân (thí dụ 6868682312345678) vào 1 cell nào đó (thí dụ cell B3) và muốn máy hiển thị theo định dạng 6868-6823-1234-5678, bạn có thể định dạng hiển thị cho cell đó như cách bạn đã làm, nghĩa là chọn cell cần định dạng, chọn menu Format.Cells, chọn tag Number, chọn mục Custom, nhập chuỗi định dạng vào textbox Type như sau: ####-####-####-####. Kết quả cell đó sẽ hiển thị chuỗi 6868-6823-1234-5678.

    Tuy nhiên nếu bạn nhập dãy ký tự chữ số (tức dạng text chứ không phải dạng số) thì thao tác định dạng như trên không có kết quả vì thao tác định dạng trên chỉ phục vụ cho dữ liệu số.

    - Bạn có thể viết 1 macro (hay 1 hàm tự định nghĩa) để định dạng dữ liệu theo ý riêng của mình, tuy nhiên macro hay hàm do bạn viết sẽ không tự động định dạng dữ liệu ngay ở cell mà người dùng đang nhập liệu, nó chỉ có thể định dạng dữ liệu cell đang nhập và hiển thị kết quả ở cell khác. Sau đây là qui trình viết 1 hàm tự định nghĩa và dùng hàm này để định dạng dữ liệu nhập:

    1. Chạy Excel, mở file Excel chứa dữ liệu cần xử lý.

    2. Nhập thử 1 số chứa nhiều ký số hay 1 chuỗi ký tự bất kỳ vào cell xác định (thí dụ A1).

    3. Chọn menu Tools.Macro.Visual Basic Editor để mở cửa sổ soạn code VBA.

    4. Dời chuột về phần tử gốc của cửa sổ "Project" nằm ở trên trái màn hình, nhấn phải chuột vào phần tử gốc để hiển thị menu lệnh, chọn mục Insert.Module để tạo mới 1 module mã nguồn VBA. Khi cửa sổ mã nguồn trống hiển thị, bạn hãy viết 1 hàm định dạng chuỗi sau đây vào:

    Option Explicit
    Public Function MyFormat(rg As Range) As String
    Dim istr As String, ostr As String
    Dim igroup As Integer
    Dim ilen As Integer, ile As Integer
    'xác định chuỗi cần định dạng
    istr = rg.Cells(1, 1)
    ilen = Len(istr)
    'xác định số nhóm 4 ký tự
    igroup = ilen \ 4
    ile = ilen Mod 4
    If ile <> 0 Then igroup = igroup + 1
    'xác định nhóm ký tự bên trái nhất
    ostr = Left(istr, ile)
    istr = Mid(istr, ile + 1)
    igroup = igroup - 1
    While igroup <> 0
    'xác định từng nhóm 4 ký tự còn lại
    ostr = ostr & "-" & Left(istr, 4)
    istr = Mid(istr, 5)
    igroup = igroup - 1
    Wend
    'trả chuỗi kết quả về
    MyFormat = ostr
    End Function

    5. Chọn menu File.Close and Return... để quay về cửa sổ hiển thị bảng tính.

    6. Chọn cell B1, nhập nội dung sau vào cell :

    =MyFormat(A1)

    7. Bạn sẽ thấy ngay chuỗi định dạng hiển thị ở cell B1. Từ đây mỗi khi người dùng hiệu chỉnh lại nội dung cell A1 thì nội dung cell B1 cũng sẽ được cập nhật lại tự động.

    Hỏi:
    Tôi dùng laptop Asus u80v để chơi game khá nhiều, gần đây cứ hoạt động được khoảng 3-4 tiếng thì máy tự khởi động lại. Xin hỏi cách khắc phục.

    Trả lời:
    Có rất nhiều nguyên nhân khác nhau có thể dẫn đến hiện tượng máy boot lại như bạn trình bày, các nguyên nhân này được chia làm 2 loại: phần cứng và phần mềm.

    Các nguyên nhân phần cứng dẫn đến việc máy boot lại sau một thời gian làm việc là:

    - CPU quá nóng do quạt CPU bị hư, bị bụi đóng quá nhiều hay môi trường tỏa nhiệt không tốt, thí dụ máy để trên bề mặt nào đó mà che mất phần lưu thông không khí từ ngoài vào/ trong ra nên dù quạt tỏa nhiệt vẫn chạy nhưng khả năng tỏa nhiệt đã suy giảm trầm trọng. Đôi khi CPU quá nóng là do nhiệt độ môi trường cao + thời gian làm việc liên tục quá lâu.

    - RAM quá nóng sau 1 thời gian dài làm việc nên bị lỗi.

    - Một thành phần nào đó như chip điều khiển trên board mạch quá nóng sau một thời gian dài làm việc nên bị lỗi.

    Các nguyên nhân phần mềm dẫn đến việc máy boot lại sau một thời gian làm việc là:

    - Sử dụng tài nguyên không hợp lý, thí dụ xin cấp phát vùng nhớ nhiều nhưng đôi khi quên trả lại cho hệ thống khi không cần dùng, lâu dài tích lũy ngày càng nhiều làm hệ thống và/hoặc ứng dụng bị lỗi và boot máy lại.
    Vậy bạn hãy tự mình hay nhờ kỹ thuật viên uy tín kiểm tra từng nguyên nhân để từ đó xác định nguyên nhân chính xác khiến máy bị boot lại.

    Hỏi:
    Xin hỏi cách xuất data từ 1 table trong Access sang Excel mà vẫn giữ nguyên định dạng gốc của bảng dữ liệu.

    Trả lời:
    Cách đơn giản và dễ dàng nhất để xuất data từ 1 table trong database Access sang Excel mà vẫn giữ nguyên định dạng gốc của bảng dữ liệu là dùng chức năng Export của Access. Qui trình điển hình gồm các bước sau đây:

    1. Chạy Access (thí dụ version 2003), mở file Access chứa bảng dữ liệu cần xuất sang Excel.

    2. Mở table chứa dữ liệu cần xuất sang Excel.

    3. Chọn menu File.Export... để hiển thị cửa sổ Export... Chọn mục "Microsoft Excel 97-2003 (*.xls)" trong listbox "Save as type", đánh dấu chọn vào checkbox "Save formatted", nhấn chuột vào button "Export All" để xuất sang bảng tính Excel.

    Hỏi:
    Tôi có nhiều file Excel khác nhau đặt trên các máy khác nhau mà muốn thông tin liên kết cập nhật tức thời thì làm thế nào? Làm sao để cấm hoặc nhận biết thay đổi của một ô dữ liệu?

    Trả lời:
    Thông thường các file Excel có nội dung độc lập nhau, cho dù chúng ở trên cùng máy hay khác máy. Việc người dùng truy xuất 1 file Excel là như nhau cho dù file đó nằm ở máy cục bộ hay ở máy khác trong mạng. Để giúp nhiều người có thể đồng thời làm việc chung với nhau trên một số thông tin nào đó, bạn có thể chọn 1 trong 2 phương án sau:

    1. Lưu tất cả thông tin của mọi người chung trong 1 file Excel duy nhất.

    Ở chế độ mặc định, nhiều người có thể mở đồng thời 1 file Excel, trong đó người mở file đầu tiên mới có quyền cập nhật nội dung của file, các người còn lại chỉ có thể xem chứ không thể cập nhật nội dung để tránh tranh chấp. Lưu ý, việc cập nhật nội dung được gọi là thành công chỉ khi nội dung cập nhật được lưu lên file thành công.

    Nếu muốn nhiều người có thể cập nhật đồng thời 1 file Excel, bạn có thể thiết lập chế độ "Protect and Share Workbook" cho file Excel đó. Qui trình điển hình để thiết lập chế độ này như sau:

    - Người chủ file chạy Excel, mở file Excel liên quan, chọn menu Tools.Protection.Protect and Share Workbook để hiển thị cửa sổ Protect shared workbook.

    - Đánh dấu chọn vào checkbox Sharing with track changes, nhập password quản lý file rồi nhấn Ok. Khi được yêu cầu nhập lại password, hãy nhập lại đúng password đã nhập rồi nhấn Ok.

    - Máy sẽ tự động lưu file để nhớ các chế độ bảo vệ mới. Từ đây trở đi, nhiều người có thể mở đồng thời file Excel dùng chung, mỗi người được tự do cập nhật nội dung bất kỳ của file. Lưu ý, việc cập nhật nội dung của từng người chưa được thấy bởi các người khác cho đến khi người đó thực hiện việc lưu file, lúc này máy sẽ kiểm tra xem có cell nào bị tranh chấp với những cập nhật trước đó bởi người khác không. Nếu có, máy sẽ hiển thị thông báo cụ thể và yêu cầu người đó ra quyết định giải quyết tranh chấp để máy thực hiện theo. Tóm lại, mặc dù ở chế độ dùng chung, nhiều người có thể cập nhật đồng thời file Excel, nhưng mỗi người chỉ có thể thấy được các cập nhật của người khác khi thực hiện việc lưu file lên đĩa, còn các cập nhật đã làm bởi từng người nhưng chưa lưu thì vẫn chưa được cảnh báo cho các người khác biết. Để khắc phục phần nào yếu điểm này, mỗi người dùng chung nên thực hiện lưu file định kỳ để giúp nhau thấy được các cập nhật của mình và giải quyết tranh chấp sớm nhất.

    Nếu muốn hạn chế việc truy xuất của từng người trên file dùng chung này, bạn có thể dùng 1 trong 6 chế độ bảo vệ được trình bày trong phần trả lời của câu hỏi ngay phía trên đây.

    2. Lưu thông tin của từng người trên từng file Excel riêng biệt.

    Mỗi người làm việc trên file Excel riêng biệt, để một người A có thể thấy tức thời những thay đổi của người B, ta có thể copy vùng cell liên quan trong file của B và dán vào vị trí thích hợp trong file của A ở chế độ "Paste Link". Từ đây trở đi, mỗi khi B thay đổi nội dung trong vùng cell liên quan, A sẽ thấy ngay sự thay đổi đó, tuy nhiên A không thể cập nhật nội dung trong vùng cell tương ứng này của B.
    Thí dụ, nếu A muốn thấy nội dung vùng cell A1:D20 trong Sheet1 của B, ta thực hiện các bước sau:

    - Chạy Excel, mở file của B, chọn sheet Sheet1, chọn vùng cell A1:D20, chọn menu Edit.Copy để copy vùng cell này vào Clipboard.

    - Mở file của A, chọn sheet thích hợp, chọn vị trí cell thích hợp, chọn menu Edit.Paste Special, chọn button Paste Link để dán thông tin liên kết đến vùng cell trong Clipboard vào vị trí.
    Từ đây trở đi, mỗi khi B thay đổi nội dung trong vùng cell A1:D20 thì A sẽ thấy tức thời.

    Hỏi:
    Xin hỏi cách chuyển chương trình VB 6.0 thành file *.exe để cài và chạy độc lập.

    Trả lời:
    Môi trường VB 6.0 (các phiên bản khác cũng vậy) tạo Project để quản lý ứng dụng. Bạn có thể chạy ứng dụng VB 6.0 bằng 1 trong 2 phương pháp:

    - Thông dịch (interpreter) bằng cách chọn menu Run.Start, phương pháp này sẽ chạy ứng dụng trong môi trường VB 6.0.

    - Biên dịch (compiler) bằng cách chọn menu File.Make name.exe, phương pháp này sẽ dịch mã nguồn ứng dụng ra file khả thi *.exe, bạn có thể chạy file khả thi trên máy bạn (hay trên máy khác) trực tiếp chứ không cần môi trường VB 6.0 nữa. Tuy nhiên nếu cần chạy trên máy khác, bạn cần kiểm tra xem máy đó đã có các file run-time cần cho ứng dụng của bạn chưa (xem chi tiết dưới đây). Tốt nhất là khi cài ứng dụng sang máy khác, bạn cài thêm các file runtime để phục vụ chạy ứng dụng. Sau đây là các file runtime cần cho ứng dụng viết bằng VB 6.0 chạy trên 1 máy bất kỳ : MSVBVM60.DLL, OLEAUT32.DLL , OLEPRO32.DLL, STDOLE2.TLB, ASYCFILT.DLL, COMCAT.DLL

    Bạn có thể tìm thấy file này trong thư mục c:\windows\system32 của máy đã cài môi trường VB 6.0, cài đặt chúng qua máy khác là copy chúng và copy vào thư mục c:\windows\system32 của máy đó.

    Hỏi:
    Tôi có CSDL khá lớn, mỗi ngày có khoảng 10 ngàn record, dùng Select ... From ... Where... để xuất ra danh sách, máy chạy khá lâu; khi dữ liệu lên khoảng 500 ngàn thì không thể truy vấn được. Xin hướng dẫn.

    Trả lời:
    Khi làm việc với database có càng nhiều record dữ liệu, máy càng tốn nhiều thời gian. Có rất nhiều yếu tố liên quan đến tốc độ truy xuất dữ liệu trong database, bạn cần phải chú ý từng yếu tố và tìm cách khắc phục từng yếu tố một:

    1. Máy tính chạy server database (SD) và máy tính chạy ứng dụng truy xuất database trên máy server. Máy càng mạnh, đĩa cứng càng lớn và càng nhanh càng tốt, nhất là máy chạy SD.

    2. Chọn SD có khả năng quản lý hiệu quả khối dữ liệu rất lớn. Hiện nay Oracle Server thích hợp nhất trong trường hợp phải quản lý dữ liệu rất lớn. Nếu database chỉ mới khoảng 500 ngàn record thì Microsoft SQL Server cũng đủ mạnh.

    3. Dùng kỹ thuật "indexing" dữ liệu để sắp xếp và quản lý các record dữ liệu phục vụ từng yều cầu xử lý riêng biệt.

    4. Nếu máy chạy ứng dụng khác máy chạy SD, cần trang bị mạng có tốc độ cao để nối kết các máy lại.

    5. Trong trường hợp xuất dữ liệu ra máy in, chọn máy in nhanh, có buffer lớn. Nên tối ưu hóa đoạn lệnh điều khiển xuất dữ liệu, thí dụ nên chọn chế độ in text-mode (dùng 1 font chữ và 1 co chữ duy nhất) thay vì in ở chế độ đồ họa...

    ID: A1012_136