Newsgroup: it.comp.appl.access
Titolo: lettura file txt

Buon giorno 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à dopo aver inserito una quantità superiore al valore impostato
nel file txt compare sempre il messaggio, 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

 ha scritto nel messaggio
news:r1Fde.96635$zZ1.2...@twister1.libero.it...

Ciao Gigi,
If idprodotto = StVerificaTxtA And richiestidestinatario <> StVerificaTxtB
Then
prova a sostituire con  il segno <> corrisponde a diverso e quindi è vero
sia quando è minore che qundo è maggiore
If idprodotto = StVerificaTxtA And richiestidestinatario <  StVerificaTxtB
Then
Ciao
Cinzia