Article View: free.it.visual-basic
Article #3271ricerca db3
From: stefano
Date: Fri, 23 Aug 2002 19:32
Date: Fri, 23 Aug 2002 19:32
93 lines
3556 bytes
3556 bytes
Avrei la seguente richiesta da farvi.
Accedo ad un database dBIII (.dbf) (contenente una rubrica con codice, nome
telefono, indirizzo ecc.. di clienti) con l'oggetto data, rieco a gestirlo,
(aggiungere/modificare record ecc.) e funziona tutto bene.
Ora, diventato abbastanza grande, dovrei effettuare delle ricerche
inserendo, ad esempio, le prime tre/quattro lettere di un cliente. Vorrei
che con un command_button il database si portasse sul primo record che trova
e se ci sono pi� record che soddisfano la ricerca successivamente, ripremedo
il command_button della ricerca trovi il record successivo.
Purtroppo il "FindFirst" a quanto ho capito con dBIII non funziona.
Tempo fa avevo il problema di cercare se un record fosse o meno presente nel
database, questo sistema sarebbe adatto, se non fosse che nella ricerca �
necessario inserire tutto il nome del campo, perch� con le prime lettere non
funziona.
Vi "allego" il codice (tra l'altro preso da questo news un po' di settimane
fa, perfettamente funzionante) che per me si potrebbe adattare. Se ne avete
dell'altro + competitivo � chiaramente ben accetto.
----------------------------------------------------------------------------
---------------------
Private Sub Command1_Click()
On Error GoTo erh
Dim sUserInput As String
Dim rst As DAO.Recordset
Dim vBmk As Variant
sUserInput = InputBox("immetti codice", "CLIENTI - Ricerca x codice",
"ALFKI")
If (Len(sUserInput) = 0) Then
Else
With Me.Data1
Set rst = .Recordset.Clone
With rst
If ((.BOF = True) And (.EOF = True)) Then
Else
Do Until (.EOF = True)
If (.Fields("SOCIETA").Value = sUserInput) Then
' IN QUESTO PUNTO invece di =sUserInput non c'� un "sistema" per dire "i
primi caratteri di sUserInput '= .fields'("SOCIETA").value??
vBmk = .Bookmark
Exit Do
End If
.MoveNext
Loop
End If
.Close
End With
If IsEmpty(vBmk) Then
MsgBox "il codice" & vbCrLf & "'" & sUserInput & "'" & "non esiste",
vbInformation + vbOKOnly
Else
.Recordset.Bookmark = vBmk
End If
End With
End If
ext:
On Error Resume Next
rst.Close: Set rst = Nothing
Exit Sub
erh: With Err
MsgBox (.Description), vbCritical + vbOKOnly, "ERR#" & .Number
End With
Resume ext
End Sub
----------------------------------------------------------------------------
---------------------
Sistema:
Visual Basic 6 enterprise
Win 2k
Celeron 1100 MHz - 256Mb ram
Spero di essermi espresso in maniera corretta.
Technical Details
Message-ID:
<A5w99.1101$ub2.21376@news1.tin.it>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-05!sn-xit-06!sn-xit-04!supernews.com!news.maxwell.syr.edu!nntp.infostrada.it!newsfeeder.edisontel.com!news-out.tin.it!news-in.tin.it!news1.tin.it.POSTED!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Language: ITALIAN,ASCII X-Google-Thread: f94ee,f7dc10c8438867f3,start X-Google-Attributes: gidf94ee,public X-Google-ArrivalTime: 2002-08-23 12:41:57 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-05!sn-xit-06!sn-xit-04!supernews.com!news.maxwell.syr.edu!nntp.infostrada.it!newsfeeder.edisontel.com!news-out.tin.it!news-in.tin.it!news1.tin.it.POSTED!not-for-mail From: "stefano" <stefalem@tin.it> Newsgroups: free.it.visual-basic Subject: ricerca db3 Lines: 96 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.50.4133.2400 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 Message-ID: <A5w99.1101$ub2.21376@news1.tin.it> Date: Fri, 23 Aug 2002 19:32:48 GMT NNTP-Posting-Host: 213.45.137.240 X-Complaints-To: newsmaster@tin.it X-Trace: news1.tin.it 1030131168 213.45.137.240 (Fri, 23 Aug 2002 21:32:48 MET DST) NNTP-Posting-Date: Fri, 23 Aug 2002 21:32:48 MET DST Organization: TIN