Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
casa verde 2024

Intrerupator cu N - doza doar cu ...

Incalzire casa fara gaz/lemne

Incalzire in pardoseala etapizata
 Suprataxa card energie?!

Cum era nivelul de trai cam din a...

probleme cu ochelarii

Impozite pe proprietati de anul v...
 teava rezistenta panou apa calda

Acces in Curte din Drum National

Sub mobila de bucatarie si sub fr...

Rezultat RMN
 Numar circuite IPAT si prindere t...

Pareri brgimportchina.ro - teapa ...

Lucruri inaintea vremurilor lor

Discuții despre TVR Sport HD.
 

Verificare fisier deschis in VB 6.5

- - - - -
  • Please log in to reply
7 replies to this topic

#1
dcrst755

dcrst755

    Active Member

  • Grup: Members
  • Posts: 1,294
  • Înscris: 26.08.2008
sal
fiind novice in VB cer un mic ajutor dupa ce am tot citit pe net de-mi plezneste capu si zeci de incercari.
Am facut un Macro care tb sa scrie dintr-un workbook in alte 2 fisiere .xls datele introduse in primul.
Toate bune si frumoase pana in momentul in care dc unul din cele 2 fisiere in care scrie este deschis, da eroare.
cum verific dc un fieiser .xls este deschis sau nu. dc e deschis, sa atentioneze utulizatoru.

Merci!

Edited by dcrst755, 04 November 2008 - 18:00.


#2
ionut_y

ionut_y

    Member

  • Grup: Members
  • Posts: 836
  • Înscris: 21.06.2005

 dcrst755, on Nov 4 2008, 18:59, said:

sal
fiind novice in VB cer un mic ajutor dupa ce am tot citit pe net de-mi plezneste capu si zeci de incercari.
Am facut un Macro care tb sa scrie dintr-un workbook in alte 2 fisiere .xls datele introduse in primul.
Toate bune si frumoase pana in momentul in care dc unul din cele 2 fisiere in care scrie este deschis, da eroare.
cum verific dc un fieiser .xls este deschis sau nu. dc e deschis, sa atentioneze utulizatoru.

Merci!
o solutie ar fi sa prinzi eroarea cu On Error,sa consulti mesajul sau numarul sau si sa afisezi tu un mesaj particularizati,vezi
Err.Description,Err.Number

#3
dcrst755

dcrst755

    Active Member

  • Grup: Members
  • Posts: 1,294
  • Înscris: 26.08.2008
pai da prind eroarea...dar de la ce comanda ca de la Open nu vrea. Eu am incercat ca mai jos:

Sub TestOpen()
        fistmp1 = "\\Cristian\work\Evidenta P-V.xls"
        fistmp2 = "\\Cristian\work\Raport Activitate.xls"
        Open fistmp1 For Random As #1
        Open fistmp2 For Input As #2
        On Error GoTo err_handler
  
  
err_handler:
        Select Case Err.Number
            Case 20: MsgBox "Fisiere deschise!!!     Va rog asigurati va ca sunt inchise"
            Case 53: MsgBox "Nu gasesc fisierele in care trebuie sa scriu!!!"
            Case 55: MsgBox "Fisiere deschise!!!     Va rog asigurati va ca sunt inchise"
            Case 71: MsgBox "Nu sunt accesibile in retea fisierele"
        End Select

        Close #1
        Close #2
End Sub

dar dupa comanda Open nu-mi capteaza nici o eroare.

#4
ionut_y

ionut_y

    Member

  • Grup: Members
  • Posts: 836
  • Înscris: 21.06.2005
On error trebuie pus inainte de Open

#5
dcrst755

dcrst755

    Active Member

  • Grup: Members
  • Posts: 1,294
  • Înscris: 26.08.2008
cum trbuie pus inainte de Open ?!?!
ca face saltul la err_handler: inainte de a-mi deschide fisierele ? Secventa de cod e luata dintr-un tutorial.

ideea este ca in codul de mai sus indiferent daca sunt deschise sau nu de cineva cele 2 xls-uri comanda Open nu-mi genereaza nici o eroare iar Err.Number are valoarea 0.

#6
dcrst755

dcrst755

    Active Member

  • Grup: Members
  • Posts: 1,294
  • Înscris: 26.08.2008
mda...l-am pus si inainte de Open si degeaba. nu vede ca fisierul este deschis.

#7
ionut_y

ionut_y

    Member

  • Grup: Members
  • Posts: 836
  • Înscris: 21.06.2005
Sub TestOpen()
On Error GoTo err_handler

fistmp1 = "\\Cristian\work\Evidenta P-V.xls"
fistmp2 = "\\Cristian\work\Raport Activitate.xls"
Open fistmp1 For Random As #1
Open fistmp2 For Input As #2


Close #1
Close #2

Exit Sub
err_handler:
Select Case Err.Number
Case 20: MsgBox "Fisiere deschise!!! Va rog asigurati va ca sunt inchise"
Case 53: MsgBox "Nu gasesc fisierele in care trebuie sa scriu!!!"
Case 55: MsgBox "Fisiere deschise!!! Va rog asigurati va ca sunt inchise"
Case 71: MsgBox "Nu sunt accesibile in retea fisierele"
End Select
End Sub

Folosete codul corectat mai sus,l-am scris direct in browser nu l-am verificat in VB,daca nu merge pune un beakpoint
pe Select Case Err.Number si vezi exact ce valoare are Err.Number

 dcrst755, on Nov 5 2008, 11:49, said:

cum trbuie pus inainte de Open ?!?!
ca face saltul la err_handler: inainte de a-mi deschide fisierele ? Secventa de cod e luata dintr-un tutorial.

ideea este ca in codul de mai sus indiferent daca sunt deschise sau nu de cineva cele 2 xls-uri comanda Open nu-mi genereaza nici o eroare iar Err.Number are valoarea 0.

Pai asa este pentru ca indiferent de situatie la tine se executa si parte de dupa  err_handler:,vezi ca am pus un Exit Sub.

Edited by ionut_y, 05 November 2008 - 12:57.


#8
dcrst755

dcrst755

    Active Member

  • Grup: Members
  • Posts: 1,294
  • Înscris: 26.08.2008
merci mult. am inteles
pana la urma am reusit astfel:

Sub Salvare()
        Dim fistmp As String
        fistmp1 = "\\Cristian\all\Evidenta P-V.xls"
        fistmp2 = "\\Cristian\all\Raport Activitate.xls"
        If IsFileLocked(fistmp1) Or IsFileLocked(fistmp2) Then
            MsgBox " !!! Fisiere deschise !!!"
            MsgBox "Datele NU s-au SALVAT. Iesiti din fisierele folosite si salvati din nou!"
        Else
            .......................
        End If
End Sub

Function IsFileLocked(ByVal fileName As String) As Boolean
On Error Resume Next
Open fileName For Binary Access Read Write Lock Read Write As #1
Close #1
If Err.Number <> 0 Then
IsFileLocked = True
Err.Clear
Else
IsFileLocked = False
End If
End Function

Anunturi

Chirurgia cranio-cerebrală minim invazivă Chirurgia cranio-cerebrală minim invazivă

Tehnicile minim invazive impun utilizarea unei tehnologii ultramoderne.

Endoscoapele operatorii de diverse tipuri, microscopul operator dedicat, neuronavigația, neuroelectrofiziologia, tehnicile avansate de anestezie, chirurgia cu pacientul treaz reprezintă armamentarium fără de care neurochirurgia prin "gaura cheii" nu ar fi posibilă. Folosind tehnicile de mai sus, tratăm un spectru larg de patologii cranio-cerebrale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate