Newsgroup: it.comp.appl.access
Titolo: LETTURA FILE TXT

Salve a tutti vorrei chiedere un aiuto in merito ad una procedura che non
riesco a  far funzionare correttamente..
L'intenzione è quella di leggere da un file txt  dei dati che vengono poi
confrontati con dei valori inseriti un campo (che si chiama
richiestidestinatario). Se il valore è inferiore a quello  impostato nel
file txt,  viene emesso un messaggio.
Il file txt, che si chiama verifica.txt, si trovare nella cartella
C:\richiestafarmacia ed è così composto
  a.. "FLUOXETINA FIDIA*12CPS 20MG 23"
  b.. "SODIO CLORURO*0,9% 100ML 24"
  c.. "FOLINA*IM 5F 2ML 15MG  3"
  d.. 3
Di seguito  la routine dell'evento dopo aggiornamento dell'elemento
richiestidestinatario
 Private Sub richiestidestinatario_AfterUpdate()
Me.Refresh
On Error GoTo errore
Dim  intConta As Integer
Dim Verifica, Gianoto, StVerifica, StVerificaTxt, StVerificaTxtA,
StVerificaTxtB, togli As String
  1.. Nella variabile verifica inserisco l'ultima stringa presente nel file
verifica txt, in questo caso si tratta del numero 3
Verifica = "C:\richiestafarmacia\verifica.txt"
Open Verifica For Input As #1
Do While Not EOF(1)
                         Line Input #1, Verifica
                        Loop
                          Close #1
  2.. Adesso eseguo un ciclo completo sul file txt
StVerificaTxt = "C:\richiestafarmacia\verifica.txt"
  Open StVerificaTxt For Input As #1
For intConta = 1 To Verifica 'ripete il ciclo per tre volte
Input #1, StVerificaTxt
  3.. Conto quanti caratteri ci sono nella prima stringa  e ne tolgo 3; nell
'esempio di "SODIO CLORURO*0,9% 100ML 48" risulterà 24 (questo anche per
togliere le " presenti nel file txt)
           Gianoto = Len(StVerificaTxt) - 3
          togli = Len(StVerificaTxt) - 2
          StVerificaTxtA = Mid(StVerificaTxt, 1, Gianoto)
          StVerificaTxtB = Mid(StVerificaTxt, togli, 5)
Il risultato nell'esempio di "SODIO CLORURO*0,9% 100ML 48" è:
StVerificaTxtA  contiene SODIO CLORURO*0,9% 100ML
StVerificaTxtB  contiene  48
  4.. infine se il controllo idprodotto è uguale alla variabile
StVerificaTxtA e  il campo richiestidestinatario è inferiore alla variabile
StVerificaTxtB compare: MsgBox ("ATTENZIONE: il prodotto" & vbCrLf &
StVerificaTxtA & vbCrLf & "non può essere inferiore a " & vbCrLf &
StVerificaTxtB & "unità")
       Per cui se idprodotto contiene SODIO CLORURO*0,9% 100ML come
StVerificaTxtA
         e  richiestidestinatario contiene ad es il n 23  quindi <  a
StVerificaTxtB (che come si può vedere sopra è 48)  compare il messaggio
 If idprodotto = StVerificaTxtA And richiestidestinatario <> StVerificaTxtB
Then
       MsgBox ("ATTENZIONE: il prodotto" & vbCrLf & StVerificaTxtA & vbCrLf
& "non può essere inferiore a " & vbCrLf & StVerificaTxtB & "unità")
Per la verità, visto che quello che voglio ottenere e che SOLO se la
quantità è veramente inferiore deve comparire il messaggio, dopo aver
inserito una quantità superiore al valore impostato nel file txt compare
sempre il messaggio,
Qaulcuno sa spiegarmi il perchè?
End If
Next intConta
Close #1
errore:
         Exit Sub
End Sub
Sperando di essere stato abbastanza chiaro, ringrazio anticipatamente per l'
attenzione prestata e porgo distinti saluti
Bena GianLuigi

 Bena GianLuigi
Il perché di cosa?
E' chiaro come è strutturato il file ma non è chiaro il problema e sopraatutto quello che devi (o dovresti) fare...
Ciao.
-- 
Sergio MAZZA