Cần giúp đỡ về Update Query

codang2605

New Member
Hội viên mới
Chào mọi người
em có một bảng KHOA(makhoa,tenkhoa,SoSV)
SOSV:Số sinh viên
SINHVIEN(masv,hosv,tensv,makhoa)
Thực hiện truy vấn cập nhật cột SOSV chính bằng số sinh viên tương ứng mỗi khoa
Mong mọi người giúp đỡ
Cảm ơn mọi người
 
Ðề: Cần giúp đỡ về Update Query

Chào mọi người
em có một bảng KHOA(makhoa,tenkhoa,SoSV)
SOSV:Số sinh viên
SINHVIEN(masv,hosv,tensv,makhoa)
Thực hiện truy vấn cập nhật cột SOSV chính bằng số sinh viên tương ứng mỗi khoa
Mong mọi người giúp đỡ
Cảm ơn mọi người
Bạn có 2 bảng chứ: KHOA và SINHVIEN đúng không.
Bạn tạo query này xem sao:
UPDATE KHOA INNER JOIN ([Select SINHVIEN.MAKHOA, count(SINHVIEN.MASV) as SOSV from SINHVIEN GROUP BY SINHVIEN.MAKHOA]. as qry1) ON KHOA.MAKHOA = qry1.MAKHOA SET KHOA.SOSV = qry1.SOSV
 
Ðề: Cần giúp đỡ về Update Query

Operation must use an updateable query
Access thông báo lỗi đó.
Ở đây mình dùng một query trung gian để tính số sinh viên sau đó cập nhật vào cột SOSV
nhưng nó cứ báo lỗi trên đó
Mọi người thử xem
 
Ðề: Cần giúp đỡ về Update Query

Operation must use an updateable query
Access thông báo lỗi đó.
Ở đây mình dùng một query trung gian để tính số sinh viên sau đó cập nhật vào cột SOSV
nhưng nó cứ báo lỗi trên đó
Mọi người thử xem
Bạn xem thử DEMO.(Chưa chuyên nghiệp lắm, nhưng chắc cũng được)
http://www.mediafire.com/?yzmz3jnnjj0
 
Ðề: Cần giúp đỡ về Update Query

Ái chà! phải khổ sở thế sao!
Thanks bác nhiều. Đây là câu hỏi phần query trong đề thi B tin học
Không biết còn cách nào khác không, chứ như thế này thì không phải ai cũng làm được đâu bác.
Dùng Query thôi
 
Ðề: Cần giúp đỡ về Update Query

Về nguyên tắc thì bảng KHOA không thể chứa cột SOSV. Bất cứ khi nào cần biết số SV của mỗi khoa thì ta sẽ thực hiện query đếm số SV trên bảng SINHVIEN.
Bạn hãy đọc kỹ đề bài lại xem sao. Đề bạn đưa ra ở trên là vô lý về cấu trúc dữ liệu.
Nếu đề hợp lý thì không cần cập nhật (UPDATE) số SV gì cả. Chỉ cần truy vấn đếm (SELECT Count(...)) mà thôi.
 
Ðề: Cần giúp đỡ về Update Query

Tại sao bảng KHOA lại không chứa cột SOSV được
Mỗi lần ta muốn biết được số sinh viên của mỗi khoa thì phải thực hiện một phép Count bên bảng Sinhvien
Nếu trên những CSDL lớn có ràng buộc ví dụ như là một khoa có tối đa bao nhiêu sinh viên thì cột SOSV trong bảng KHOA là cần thiết
Mỗi lần muốn biết sosv chỉ cần vào bảng khoa mà lấy ra, hay khi thêm một sinh viên thì chỉ cần check sosv hiện có của khoa là bao nhiêu

VÀ mình dám chắc luôn, đây là câu hỏi trong một đề thi B và hoàn toàn hợp logic
Đồng ý là có thể tính Sosv bằng cách Count(masv) nhưng mình muốn lưu trữ nó thành một cột trong KHOA luôn
Thực tế trong trường học, mỗi lớp đều có một cột SOSV cho biết số sinh viên hiện có trong lớp, chứ không ai đi đếm từng người có trong 1 lớp mỗi lần có yêu cầu cho biết số học sinh hiện có đâu
 
Ðề: Cần giúp đỡ về Update Query

Tại sao bảng KHOA lại không chứa cột SOSV được
Mỗi lần ta muốn biết được số sinh viên của mỗi khoa thì phải thực hiện một phép Count bên bảng Sinhvien
Nếu trên những CSDL lớn có ràng buộc ví dụ như là một khoa có tối đa bao nhiêu sinh viên thì cột SOSV trong bảng KHOA là cần thiết
Mỗi lần muốn biết sosv chỉ cần vào bảng khoa mà lấy ra, hay khi thêm một sinh viên thì chỉ cần check sosv hiện có của khoa là bao nhiêu

VÀ mình dám chắc luôn, đây là câu hỏi trong một đề thi B và hoàn toàn hợp logic
Đồng ý là có thể tính Sosv bằng cách Count(masv) nhưng mình muốn lưu trữ nó thành một cột trong KHOA luôn
Thực tế trong trường học, mỗi lớp đều có một cột SOSV cho biết số sinh viên hiện có trong lớp, chứ không ai đi đếm từng người có trong 1 lớp mỗi lần có yêu cầu cho biết số học sinh hiện có đâu
Theo ý của MUONTENNGUOI cũng rất hợp lý. Chỉ cần Select query là bạn có thể xem được ngay. Không nhất thiết phải cần UPDATE.
SELECT tblSINHVIEN.MAKHOA, Last(tblKHOA.TENKHOA) AS TENKHOA, Count(tblSINHVIEN.MASV) AS SOSV
FROM tblSINHVIEN LEFT JOIN tblKHOA ON tblSINHVIEN.MAKHOA = tblKHOA.MAKHOA
GROUP BY tblSINHVIEN.MAKHOA
 
Ðề: Cần giúp đỡ về Update Query

thế có cách nào làm được câu này không
 
Ðề: Cần giúp đỡ về Update Query

Mình cũng mắc 1 vấn đề tương tự của bạn nhưng chưa giải được. Nếu bạn có thể update thì khi cần có thể format validatting cho các khoa có số sinh viên khác nhau một màu khác chẳng hạn.
 
Ðề: Cần giúp đỡ về Update Query

Chào mọi người
em có một bảng KHOA(makhoa,tenkhoa,SoSV)
SOSV:Số sinh viên
SINHVIEN(masv,hosv,tensv,makhoa)
Thực hiện truy vấn cập nhật cột SOSV chính bằng số sinh viên tương ứng mỗi khoa
Mong mọi người giúp đỡ
Cảm ơn mọi người

Cái này trong SQL thì dùng trigger là ok nè. Nhưng trong Access thì phải sử dụng đến Code, ngoài ra nếu được nhập direct từ Table thì phải dùng 1 query Update để cập nhật lại cho đúng.

Dim strMakhoa As String

Sự kiện After_Insert của Form Sinhvien
Update Khoa Set SoSV = SoSV + 1 Where makhoa = me.makhoa

Sự kiện Delete của Form Sinhvien
strMakhoa = me.makhoa
Update Khoa Set SoSV = SoSV - 1 Where makhoa = strMakhoa

Sự kiện AfterDelConfirm của Form Sinhvien
If status <> 0 Then
Update Khoa Set SoSV = SoSV + 1 Where makhoa = strMakhoa
End If

Query Update SoSV:

Giống như bác haquocquan
 

CẨM NANG KẾ TOÁN TRƯỞNG


Liên hệ: 090.6969.247

KÊNH YOUTUBE DKT

Cách làm file Excel quản lý lãi vay

Đăng ký kênh nhé cả nhà

SÁCH QUYẾT TOÁN THUẾ


Liên hệ: 090.6969.247

Top