🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: free.it.visual-basic
Article #3271

ricerca db3

#3271
From: stefano
Date: Fri, 23 Aug 2002 19:32
93 lines
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-mail

Show 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