Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
S23Ultra, magazin online Orange

Sursa in comutatie reglabila 0-30v

Cric hidraulic crocodil nu mai ri...

Unde torn detergentul lichid?!
 Unde gasesc acest tip de bec ?!

Pentru cei ce stati la bloc, va s...

Necesar software pt. timeline

Biodome 27/ Thermica carpatino
 Nu pot accesa unele pagini

Experiente cu mecanicii auto

La Digi de la Vodafone

Creveti
 Sare siguranta cand pornesc masin...

Verificare structura de rezistent...

Masina nr 2 - 90% oras, benzina, ...

Tratament ortodontic
 

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

View Postdcrst755, 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

View Postdcrst755, 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 spinală minim invazivă Chirurgia spinală minim invazivă

Chirurgia spinală minim invazivă oferă pacienților oportunitatea unui tratament eficient, permițându-le o recuperare ultra rapidă și nu în ultimul rând minimizând leziunile induse chirurgical.

Echipa noastră utilizează un spectru larg de tehnici minim invazive, din care enumerăm câteva: endoscopia cu variantele ei (transnazală, transtoracică, transmusculară, etc), microscopul operator, abordurile trans tubulare și nu în ultimul rând infiltrațiile la toate nivelurile coloanei vertebrale.

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