quyvt1993 > 02-02-13, 03:41 PM
quyvt1993 > 02-02-13, 06:50 PM
khanhduycsgt > 03-02-13, 12:14 PM
quyvt1993 > 03-02-13, 02:13 PM
Xuân Thanh > 03-02-13, 04:07 PM
tanthuc > 04-02-13, 09:18 AM
(02-02-13, 03:41 PM)quyvt1993 Đã viết: Mình có 1 chương trình thế này:
1 table có chứa các giá trị 2450,1540,4520, 5684......
1 form có Textbox1 tính ra được là 2910
Mình cần viết lệnh để tìm kiếm giá trị textbox1 này ở bên table1, nếu có thì xuất toàn bộ dòng đó của table ra, còn không thì tìm 1 giá trị gần bằng nó nhất sau đó xuất hàng đó ra.
Nhưng mình lại không làm được trường hợp này, mong các bạn giúp đỡ, có demo càng tốt!
Cám ơn các bạn!
Xuân Thanh > 04-02-13, 10:31 AM
(04-02-13, 09:18 AM)tanthuc Đã viết:(02-02-13, 03:41 PM)quyvt1993 Đã viết: Mình có 1 chương trình thế này:
1 table có chứa các giá trị 2450,1540,4520, 5684......
1 form có Textbox1 tính ra được là 2910
Mình cần viết lệnh để tìm kiếm giá trị textbox1 này ở bên table1, nếu có thì xuất toàn bộ dòng đó của table ra, còn không thì tìm 1 giá trị gần bằng nó nhất sau đó xuất hàng đó ra.
Nhưng mình lại không làm được trường hợp này, mong các bạn giúp đỡ, có demo càng tốt!
Cám ơn các bạn!
Tình hình này phải duyêt table thuoi
so_can_tim
min=0
for ( tu_dong_dau den dong_cuoi){
neu abs(so_can_tim -so_trong_record) < min thi
kq=so_can_tim
min=kq
}
kết qua la kq
quyvt1993 > 04-02-13, 12:34 PM
Xuân Thanh > 04-02-13, 01:00 PM
(03-02-13, 02:13 PM)quyvt1993 Đã viết: Mình cũng có tìm khá nhiều rồi bạn nhưng tại các bạn ấy tìm kiếm theo kiểu lọc dữ liệu, mình có 1 text box GiaTien, 1 table Dongia, mình muốn khi nhất nút tìm kiếm, sẽ tìm trong table dongia, nếu thấy thì xuất ra textbox kq, nếu ko tìm giá trị gần nhất xuất ra. Chứ nếu lọc như các bạn ấy sẽ lộ đơn giá ra, mà mình tìm ko ra.
File của mình bạn xem giùm mình với nha.!
Option Explicit
Function TimGanDung(nGiaTri As Double, nLoai As Integer)
Dim rs As Recordset
Dim strSQL As String
strSQL = "SELECT tblDonGia.* FROM tblDonGia ORDER BY tblDonGia.GiaSP"
Set rs = CurrentDb.OpenRecordset(strSQL)
Dim nDau As Double
Dim KQ As Boolean
KQ = False
If rs.RecordCount > 0 Then
rs.MoveFirst
nDau = nGiaTri - rs!GiaSP
Do Until rs.EOF
If rs!GiaSP = nGiaTri Then TimGanDung = rs!GiaSP
If nLoai = 1 Then
If rs!GiaSP < nGiaTri Then
If nGiaTri - rs!GiaSP - nDau > 0 Then
nDau = nGiaTri - rs!GiaSP
Else
TimGanDung = rs!GiaSP: KQ = True
End If
End If
Else
If rs!GiaSP > nGiaTri Then
If nGiaTri - rs!GiaSP < 0 Then
TimGanDung = rs!GiaSP: KQ = True: Exit Do
End If
End If
End If
rs.MoveNext
Loop
End If
If KQ = False Then MsgBox "Ket qua do tim khong co trong du lieu" , , "Thong Bao"
quyvt1993 > 04-02-13, 01:08 PM