Avatar billede 123456789 Nybegynder
04. september 2001 - 08:27 Der er 11 kommentarer og
1 løsning

Error handler som ikke stopper program

Jeg kommunikerer fra VB med access, via DAO.
Samtidig kalder jeg nogle macroer i access, derfor skal programmet stå åbent.
Access skal komprimeres med jævne mellemrum, og jeg lukker og åbner derfor access fra VB.

MEN......når jeg åbner access igen, medfører den første kommando at der sker en error. Ved næste kommando er det som om forbindelsen er blevet genoprettet, og der sker ikke flere fejl. Derfor vil jeg kalde en ubetydende kommando som eks en  \"beep macro\" i access, for at skabe forbindelsen igen. Men hvordan sørger jeg for at programmet blot ignorerer denne fejl der så opstår og går videre uden at brugeren opdager noget?????


Mit script

Public sub beep()
DoCmd.RunMacro \"beep\"

On Error Resume Next

End Sub

Linien \"On Error Resume Next\" hjælper ikke, kan nogen hjælpe mig
Avatar billede jennemaan Nybegynder
04. september 2001 - 08:30 #1
Public sub beep()
On Error Resume Next
DoCmd.RunMacro \"beep\"
On Error Goto 0
End Sub


Du skal jo kalde \"On Error Resume Next\" før du kalder den procedure der genererer fejl.

/Jennemaan ;o)

Avatar billede per.s.carlsen Nybegynder
04. september 2001 - 08:34 #2
har du prøvet at flyttet error handleren op over DoCmd.RunMacro \"beep\":

===========================
Public sub beep()

On Error Resume Next

DoCmd.RunMacro \"beep\"

End Sub
=======================
/per
Avatar billede terry Ekspert
04. september 2001 - 08:51 #3
Your not having much luck with this problem, original question>
http://www.eksperten.dk/spm/100470

I never did get an answer on whether or not the vb progrm ayou mention is an VISUAL BASIC program or a program in an Access database coded in VBA!

looking at your code in this question it seems to be a VBA (Acesss).

I cant rememebr if you have been asked, but could you send the program and databases to me?
Your explanation of the problem doesnt seem to be precise enough to give a correct answer, so it would save a lot of time if you could.
Avatar billede 123456789 Nybegynder
04. september 2001 - 09:10 #4
Tak for svar.
Det hjalp at flytte \"On Error Resume Next\" op foran.
Men nu bliver der ikke lagt forbindelse til access, så næste gang jeg skal have en kommando af betydning går den i error alligevel. Jeg troede det kunne løse problemet, men må finde på noget andet (??).

Til Terry
Jeg sendte dig et svar, det skulle stå nederst på siden.
Det foregår i VBA, men ikke access VBA.  Programmet er et operatørprogram fra Rockwell software, en amerikansk leverandør af industrielle komponenter / software.
I dette program er VBA inkluderet.
Derfor er det heller ikke alle koder som jeg kan få lov at anvende i programmet.


VH
123

Avatar billede 123456789 Nybegynder
04. september 2001 - 09:11 #5
Til terry

Jeg kører nogle access macroer kaldt fra VBA, derfor er det nødvendig at have access åbnet hele tiden.

123
Avatar billede 123456789 Nybegynder
04. september 2001 - 10:12 #6
Er der nogen som har \"et eller andet\" som kan bruges til at gendanne forbindelsen til access


VH
123
Avatar billede jennemaan Nybegynder
04. september 2001 - 10:16 #7
Antaget at du bruger ado;

    Dim adoConn As ADODB.Connection
    Set adoConn = New ADODB.Connection
    adoConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & App.Path & \"dindatabase.mdb\"


Avatar billede terry Ekspert
04. september 2001 - 10:19 #8
123> I think its hard for anyone to give you a satisfactory answer because we cant see your setup. We are only getting bits of information and have too guess the rest.

The program from Rockwell (they make chips for modems too I believe) do you have access to the code? Is it hear you are having problems? Is it this program that via DAO makes use of an Access database (mdb) file. Is the Rockwell program an EXE (executable)?

We need more information or you may as well close this question too!!!!!!

Avatar billede ea_data Nybegynder
04. september 2001 - 14:33 #9
Hej

Du nævner ikke den fejltype eller fejlkode som kommmer frem. Jeg vil foreslå, at du indsætter lidt kode, der gør at du håndterer de typer af fejl du ønsker at styre eller evt se bort fra. fx :

ErrorHandler:  \' fejlrutine
  Select Case Err.Number  \' Evaluate errorumber.
      Case 55  \' \"File already open\" error.
        Close #1  \' Close open file.
      Case Else
        \' Handle other situations here...
  End Select
  Resume  \' Resume execution at same line
            \' that caused the error.
Avatar billede 123456789 Nybegynder
04. september 2001 - 16:56 #10
Fejlkoden er

Kørselsfejl\"2048\".
Du kan ikke udføre denne handling på nuværende tidspunkt.


Jeg forsøger at klare det med error handleren

VH
123
Avatar billede 123456789 Nybegynder
04. september 2001 - 20:25 #11
Koden ser ud som følger

Public Sub Gemogluk_db()
   
    \'her gemmes og slukkes
    Set db = Nothing
    Set record = Nothing
    DoCmd.Quit acQuitSaveAll

End Sub





Public Sub komprimerDB()

DBEngine.CompactDatabase \"c:\\mydb_udl_msk\\access_db\\data.mdb\", _
\"c:\\mydb_udl_msk\\access_db\\datacompacted.mdb\"
                       
Kill \"c:\\mydb_udl_msk\\access_db\\data.mdb\"

Name \"c:\\mydb_udl_msk\\access_db\\datacompacted.mdb\"As_
\"c:\\mydb_udl_msk\\access_db\\data.mdb\"


End Sub




Public Sub Aaben_db()
\'åben database igen

Dim test
test = Shell(\"e:\\programmer\\microsoft office\\office\\msaccess.exe C:\\mydb_udl_msk\\access_db\\data.mdb\", 6)

End Sub






Public Sub forbindelse()
   
    \'her skabes forbindelse igen
    \' jeg ved bare ikke hvordan
   

End Sub








Public Sub beep()

\' dette er en test for at se om
\'forbindelsen er OK , foretager beep i access
    DoCmd.RunMacro \"beep\"
   
End Sub







Avatar billede 123456789 Nybegynder
05. september 2001 - 22:20 #12
test
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester