Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[S.O.S] Điều khiển hiển thị record trên form qua mạng LAN
#11
Đồng bộ qua mạng Lan thì hơi chuối, thực ra form_timer chỉ làm nhiệm vụ Refresh thôi. nếu là tôi thì sẽ xử lý như sau: tạo 1 nút bấm: chấm điểm: khi ông giám khảo nhập điểm vào textbox và bấm vào nút chấm điểm thì nó sẽ làm 2 nhiệm vụ:
1, lưu điểm lên vào be
2, refresh lại function lấy câu hỏi.
không cần phải dùng timer, vì sao? vì khi giám khảo chấm điểm xong mới sang câu khác chứ, nếu một trong những giám khảo chưa chấm điểm thì ông ngồi máy chính cũng chuyển câu hỏi luôn sao?
chắc gạo hơn thì thiết kế thêm 1 nút refresh.
Chữ ký của hieuvn Xin chào! Mình là hieuvn, thành viên của Thủ Thuật Access tham gia ngày Oct 2010.
ღღღღღTài sản của hieuvn (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#12
(17-01-18, 04:08 PM)ongke0711 Đã viết: Không biết anh lưu thông số ID1 -> ID2 vào biến hay vào table nhưng em nghĩ lưu vào table sẽ ổn định hơn biến. Biến có nhiều rủi ro mất khi bộ nhớ máy bị trục trặc gì dó. Lưu vào table và máy con chạy timer check cái trường ID này để đồng bộ.
Thế này nhé. Trên table chính ngoài field ID còn có field IDhienhanh (ID hiện hành). Trên form chính có record source table chính tạo code  cho Form_Current. Khi form chính của máy chính thay đổi record sẽ update giá trị tất cả các record của field IDhienhanh = giá trị field ID (có nghĩa dù trên form chính của máy con đang nằm trên record nào thì thì khi refresh giá trị của field IDhienhanh vẫn là giá trị của form ID trên form chính của máy chính).
Để refresh cho form chính của máy con máy con sử dụng một subform có Timer Interval, Nhiệm vụ Form_Timer của subform này là chạy code Table chínnh.FindFirst của field ID theo field IDhienhanh. Sử dụng Form_Timer trên subform vì nếu để Form_Timer trên form chính của máy con thì form sẽ bị gật giám khảo không chấm điểm được.
Lý thuyết như vậy là đúng và thực tế nó cũng xử lý được việc này. Nhưng vấn đề là có lúc nó chuyển được theo form chính có lúc lại nằm ỳ ra không chịu chuyển, giám khảo này chấm được còn giám khảo kia thì ngồi chờ rụng râu mà nó vẫn chưa chịu chuyển đến record hiện hành. Chấm thi trước bàn dân thiên hạ mà như thế này thì cùi bắp quá đi  021 . Hiện giờ tôi phải cho máy con thêm dàn nút navigation. Nếu nó không tự chuyển thì giám khảo chuyển nên phần mềm có biệt danh là <phần mềm cùi bắp> 015  Nói chung thì ngoài giám khảo, tôi và ban tổ chức thì không ai biết vụ này vì máy chiếu chỉ hiện thị form chính của máy chính chứ không hiển thị form chính của máy con. Nhưng mà vẫn thấy quê quê vì không xử lý được.
Chữ ký của tranthanhan1962 Kết quả cuối cùng của một đời người, không phải bạn có được bao nhiêu tiền bạc, tài sản. Mà bạn còn bao nhiêu người bạn  thumbs up
ღღღღღTài sản của tranthanhan1962 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#13
Nếu vậy có thể vấn đề nằm ở FindFirst. Anh có thử đổi qua DLookup chưa? Tốc độ DLookup cũng nhanh hơn recordset.
Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake!
ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn tranthanhan1962
#14
(20-01-18, 11:28 PM)tranthanhan1962 Đã viết: Thế này nhé. Trên table chính ngoài field ID còn có field IDhienhanh (ID hiện hành). Trên form chính có record source table chính tạo code  cho Form_Current. Khi form chính của máy chính thay đổi record sẽ update giá trị tất cả các record của field IDhienhanh = giá trị field ID (có nghĩa dù trên form chính của máy con đang nằm trên record nào thì thì khi refresh giá trị của field IDhienhanh vẫn là giá trị của form ID trên form chính của máy chính).
Để refresh cho form chính của máy con máy con sử dụng một subform có Timer Interval, Nhiệm vụ Form_Timer của subform này là chạy code Table chínnh.FindFirst của field ID theo field IDhienhanh. Sử dụng Form_Timer trên subform vì nếu để Form_Timer trên form chính của máy con thì form sẽ bị gật giám khảo không chấm điểm được.
Lý thuyết như vậy là đúng và thực tế nó cũng xử lý được việc này. Nhưng vấn đề là có lúc nó chuyển được theo form chính có lúc lại nằm ỳ ra không chịu chuyển, giám khảo này chấm được còn giám khảo kia thì ngồi chờ rụng râu mà nó vẫn chưa chịu chuyển đến record hiện hành. Chấm thi trước bàn dân thiên hạ mà như thế này thì cùi bắp quá đi  021 . Hiện giờ tôi phải cho máy con thêm dàn nút navigation. Nếu nó không tự chuyển thì giám khảo chuyển nên phần mềm có biệt danh là <phần mềm cùi bắp> 015  Nói chung thì ngoài giám khảo, tôi và ban tổ chức thì không ai biết vụ này vì máy chiếu chỉ hiện thị form chính của máy chính chứ không hiển thị form chính của máy con. Nhưng mà vẫn thấy quê quê vì không xử lý được.

Anh áp dụng WithEvents xem
* Mở form máy chủ trước,rồi mở form máy con.
* Áp dụng RaiseEvent ThaydoiThongbao("Noi dung thon bao") để cho giámk khảo biết là có câu hỏi mơới để giámkhảo tự nhấn nút chuyển câu hỏi, tránh tình trạng, máy chủ chuyển câu hỏi mà giámkhảo chưa chấm bài thì không hay.

* Về load câu hỏi mới, nên dùng ADO để load ID câu hỏi về bằng các hàm sau:
1. Kết nối .

Mã PHP:
Option Compare Database
Option Explicit
' Khai bao bien Toan cuc
Public Cnn As ADODB.Connection          '
hoac Global cnn As ADODB.Connection
Public Rst As ADODB.Recordset           'hoac Global Rst As ADODB.Recordset
Viet den 22/11/2017
Private Const PassData As String ";Jet OLEDB:Database Password=111444;"

'---------------------------------------------------------------------------------------
ProcedureTen thu tuc KetnoiCnn
' Tao tren may tinh User : DAN_WIN10PRO
AuthorNguoi khoi tao maidinhdan@gmail.com
' Date/Ngay tao          : 18/11/2017
Purpos/Mo ta           :
'---------------------------------------------------------------------------------------
Function KetnoiCnn() As Boolean
On Error GoTo Loi
    Set Cnn = New ADODB.Connection
    
    Dim LinkFileData As String
     LinkFileData = CurrentProject.path & "\Danh_muc_ho_so\Data\DataTest.mdb"
    Dim ChuoiKetNoi As String
    Dim Link As String: Link = LinkFileData & PassData
    '
ChuoiKetNoi dung cho Access co pass
        ChuoiKetNoi 
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" Link

'On Error Resume Next   Su dung cai nay neu khong dung On Error Goto Loi
    Cnn.ConnectionString = ChuoiKetNoi
    Cnn.CursorLocation = adUseClient ' 
Khong khai bao cai nay thi khi chaySet .ActiveConnection Nothing se loi
    Cnn
.Open
    
' Thuoc tinh cnn.State: 1 Doi tuong mo
        Do While Cnn.State <> 1
            DoEvents
            If Cnn.State = 0 Then Exit Function
        Loop

'
    Debug.Print "___Ket noi thanh cong_____________________________"
    KetnoiCnn True
    
Exit_Loi
:
    Exit Function
Loi:
    MsgBox "Ket noi that bai, Vui long kiem tra Server va thong tin ket noi"vbInformation"Thong bao"

    KetnoiCnn False
    Set Cnn 
Nothing
    Call DemSoLoiDeThoat
    Resume Exit_Loi
End 
Function

'---------------------------------------------------------------------------------------
Procedure TatKetnoiCnn
' Author    : Hen Dan
Date      18/04/2017
' Purpose   : Dung cho SQL Server/Access
'
---------------------------------------------------------------------------------------
'
Sub TatKetnoiCnn()
On Error Resume Next
Set Cnn = Nothing
'
    Debug.Print "_________________________Dong ket noi Connect_____________"
End Sub

'---------------------------------------------------------------------------------------
ProcedureTen thu tuc TatKetnoiRst
' Tao tren may tinh User : DAN_WIN10PRO
AuthorNguoi khoi tao maidinhdan@gmail.com
' Date/Ngay tao          : 18/11/2017
Purpos/Mo ta           :
'---------------------------------------------------------------------------------------
Sub TatKetnoiRst()
On Error Resume Next
Rst.Close
Set Rst = Nothing
'
    Debug.Print "_________________________Dong ket noi Rst_____________"
End Sub

Function KetnoiADORst(ChuoiSQL As StringOptional ChiXem As Boolean True) As ADODB.Recordset
On Error 
GoTo Loi

    
If KetnoiCnn True Then
        Set Rst 
= New ADODB.Recordset
            With Rst
                Set 
.ActiveConnection Cnn
                
.LockType adLockOptimistic
                
.CursorType adOpenKeyset
                
.Source ChuoiSQL      'Voi ADODB, Like '*abc*' phai la '%abc%'
                .Open
                ' 
Trien khai ham Them/Sua/Xoa khong the dung Set .ActiveConnection Nothing
                
If ChiXem True Then
                    Set 
.ActiveConnection Nothing  'Luu y: Bo dong nay neu la ThemXoaSua. Neu them dong nay chay loi thi trong Ham KetNoiSerVer phai them cnn.CursorLocation = adUseClient
                End If
            End With
        Set KetnoiADORst = Rst
    End If
    
Exit_Loi:
    TatKetnoiCnn
    Exit Function
Loi:
    DoCmd.RunMacro "mcthongbao.15"  '
MsgBox "Ket noi RST that bai, Vui long kiem tra String SQL"vbInformation"Thong bao"
    Resume Exit_Loi
End 
Function 

2. Load ID câu hỏi cho máy con nên dùng Class load
* Lý do:
+ Load ID về;
+ Giám khảo chấm xong, dùng class này để lưu
+ Lấy được dữ liệu là ngắt kêết nối ngay, để cho nhiêều máy truy xuất nhanh.


* Code:
1. Dưa vao code kết nối trên Tạo hàm xem máy chủ đang mở ID mấy
2. Load ID đó về máy con

Mã PHP:
Function HienThiLenFormChamdiem(Tenform As FormIDCanHienThi As String
Set Tenform.Recordset KetnoiADORst("SELECT * FROM tblBangdiem WHERE SoTT=" Val(IDCanHienThi)) 'Hien Thi de ThemXoaSua
End Function 

3. Sự kiện nhấn nút lưu của máy con khi đã chấm xong.


* Rât nhiêều công việc để làm... em chỉ xin đến đây thôi.


File đính kèm
.zip   DemoEvent thay doi tieu de form.zip (Kích cỡ: 24.21 KB / Tải về: 6)
Chữ ký của maidinhdan * Để được hỗ trợ tốt nhất, nhấn vào link dưới đây để xem.
1. [Hướng dẫn] Kiểu file gửi lên để được giúp đỡ
2. [Hướng dẫn] Nội quy diễn đàn
3. [Hướng dẫn] Cách Đưa file và hình vào diễn đàn
4.[Hướng dẫn] Để xây dựng một ứng dụng hoàn hảo và lời cảm tạ
5. Cần tìm Demo hay ứng dụng sử dụng thanh tìm kiếm phía trên cùng, bên phải của diễn đàn.
* Nếu muốn cảm ơn, hãy nhấn nút thank, không cần viết thêm bài nào nửa.



ღღღღღTài sản của maidinhdan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn tranthanhan1962
#15
(21-01-18, 02:10 PM)maidinhdan Đã viết: Anh áp dụng WithEvents xem...
Thank maidinhdan. Giám khảo ngồi đối diện với màn hình máy chiếu nên khi máy chính đổi record chấm thi thì giám khảo cũng biết chuyển đến record nào nên cũng không cần phải thông báo. Trên form máy chính có lệnh refresh liên tục đến khi nào tất cả các ô điểm của GK xuất hiện điểm đầy đủ mới chuyển record mới nên vấn đề làm thủ công thì rất OK. Vấn đề là mình muốn xử lý Automatic  007
Chữ ký của tranthanhan1962 Kết quả cuối cùng của một đời người, không phải bạn có được bao nhiêu tiền bạc, tài sản. Mà bạn còn bao nhiêu người bạn  thumbs up
ღღღღღTài sản của tranthanhan1962 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#16
(21-01-18, 12:23 PM)ongke0711 Đã viết: Nếu vậy có thể vấn đề nằm ở FindFirst. Anh có thử đổi qua DLookup chưa? Tốc độ DLookup cũng nhanh hơn recordset.
DLookup chỉ lấy giá trị để hiển thị lên máy con. Còn FindFirst thì máy con chuyển đến đúng record trên máy chính (máy chiếu). Khi GK chấm điểm sẽ refresh vào table, máy chính refresh sẽ hiện thị điểm từ table lên form trên máy chiếu
Chữ ký của tranthanhan1962 Kết quả cuối cùng của một đời người, không phải bạn có được bao nhiêu tiền bạc, tài sản. Mà bạn còn bao nhiêu người bạn  thumbs up
ღღღღღTài sản của tranthanhan1962 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#17
Đã xử lý xong. Hóa ra vấn đề trục trặc kỹ thuật không phải do phần mềm mà là do phần cứng. Đổi wifi router mới chạy OK. Cám ơn các bạn đã hỗ trợ.
Chữ ký của tranthanhan1962 Kết quả cuối cùng của một đời người, không phải bạn có được bao nhiêu tiền bạc, tài sản. Mà bạn còn bao nhiêu người bạn  thumbs up
ღღღღღTài sản của tranthanhan1962 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn maidinhdan


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  [Help] Ẩn những record theo điều kiện nam8384 4 72 Hôm qua, 04:58 PM
Bài mới nhất: nam8384
  [Hỏi] Cách tạo Cbo để lọc các mặt hàng trong Sub Form samacxanh 3 253 17-10-18, 10:33 AM
Bài mới nhất: vulhu06
  [Help] Điều khiển 1 form từ form khác tranthanhan1962 2 189 30-09-18, 05:57 PM
Bài mới nhất: tranthanhan1962
  Tìm kiếm Record ngay khi gõ trong Combobox - Class ongke0711 9 638 25-09-18, 12:00 PM
Bài mới nhất: ledangvan
  Lỗi truyền tham số từ Form vào query cannguyen 2 125 20-09-18, 06:49 PM
Bài mới nhất: cannguyen

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ơ| PMA Nha Trang| Gỗ Acrylic Không Đường Line