Newsgroup: it.comp.appl.access
Titolo: errore 462

io ho realizzato un programmino che compila un modello di word prendendo i
dati da un database access. Il mio problema è il seguente:
occasionalmente mi segnala il seguente errore: ERRORE 426 IL COMPUTER SERVER
REMOTO NON ESISTE O NO è DISPONIBILE. Premetto che il mio pc non è in rete,
ho usato office 2000 e il problema, quando si presenta, si presenta sempre
nello stesso punto (sempre lo stesso bookmark)
Grazie mille.
Roberto

roberto ha scritto:

Ti capita alla prima esportazione dopo aver aperto il db, o solo dalla
seconda in poi? Su che riga di codice si ferma?
Namor
-- 
namor at inwind punto it
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 ha scritto nel messaggio
news:dg3795$kf3$1...@news.newsland.it...

Intanto grazie per il tuo interessamento.
La cosa è molto strana in quanto il programma scritto in VB in access 2000
mi segnala l'errore alla seconda esecuzione e poi ogni due volte. Lo stesso
programma convertito nella versione 97 e fatto girare nello stesso pc fa la
stessa cosa ma se fatto girare in un pc con installato office 97 funziona
correttamente. Altra cosa strana consiste nel fatto che il documento viene
creato e parzialmente compilato poi si blocca sempre nella stessa riga di
codice
Set myTable = ActiveDocument.Tables.Add(Selection.Range, Totale + 1, 4)
riporto parte del codice :
i bookmark ora_inizio e ora_fine vengono correttamente compilati.
Dim dirigente, studenti_presenti, genitori_presenti, Discipline, Allievo,
voto_condotta, motivazione As String
Dim Wrd As Word.Application, Doc As Word.Document
Dim Rst, Rst_Debito, Rst_Allievo As DAO.Recordset
Dim Modello As String, NomeFile As String, i As Integer
Dim ID_Allievo As Double
Dim Record As String, SQL, SQL_DEBITO, SQL_DISCIPLINA As String
Dim Tbl As String * 1
Dim TotRiga As Currency, Totale As Currency
Dim ReplSel As Boolean
    Tbl = Chr$(9) 'Chr$(9) è una tabulazione
    'Trova il nome, completo di percorso, del modello word
    '("verbale_scrutinio_2q.dot" nella stessa cartella del database)
    Modello = CurrentDb.Name
    Modello = left(Modello, Len(Modello) - Len(Dir(Modello))) &
"verbale_scrutinio_2q.dot"
    On Error Resume Next 'gestione errori step by step
    'cerca un'istanza di Word già aperta
    Set Wrd = GetObject(, "Word.Application")
    If Err.Number = 429 Then
        'se c'è stato un errore è perchè Word non era già aperto:
        'aprilo adesso
        Set Wrd = CreateObject("Word.Application")
    End If
    On Error GoTo 0 'ripristina la segnalazione degli errori
    'rendi visibile la finestra di Word:
    Wrd.Visible = True
    'attiva Word e portalo in primo piano:
    Wrd.Activate
    'abilita l'opzione "Sostituisci la selezione". Se non fosse
    'attiva, i campi modulo rimarrebbero all'interno del testo.
    ReplSel = Wrd.Options.ReplaceSelection
    Wrd.Options.ReplaceSelection = True
    'Apri un nuovo documento basato sul modello:
    Set Doc = Wrd.Documents.Add(Modello)
    'attivalo e portalo in primo piano:
    Doc.Activate
    Me.Classe.SetFocus ' attiva la casella combinata
    Doc.Bookmarks("classe").Select  'imposta il nome della classe e sezione
    Wrd.Selection.TypeText Me.Classe.Text 'IMPOSTA IL SEGNALIBRO CLASSE NEL
MODELLO
    Me.txt_ora_inizio.SetFocus
    Doc.Bookmarks("ora_inizio").Select  'imposta l'ora di inizio
    Wrd.Selection.TypeText Me.txt_ora_inizio.Text
    Me.txt_ora_fine.SetFocus
    Doc.Bookmarks("ora_fine").Select  'imposta l'ora di fine
    Wrd.Selection.TypeText Me.txt_ora_fine.Text
On Error GoTo 0
Doc.Bookmarks("tabella_presenze").Select
Set myTable = ActiveDocument.Tables.Add(Selection.Range, Totale + 1, 4)
With myTable
    .Columns(1).SetWidth ColumnWidth:=InchesToPoints(2.8),
RulerStyle:=wdAdjustProportional
    .Columns(2).SetWidth ColumnWidth:=InchesToPoints(2.8),
RulerStyle:=wdAdjustProportional
    .Columns(3).SetWidth ColumnWidth:=InchesToPoints(0.5),
RulerStyle:=wdAdjustProportional
    .Columns(4).SetWidth ColumnWidth:=InchesToPoints(0.5),
RulerStyle:=wdAdjustProportional
    .Rows(1).Shading.Texture = wdTexture20Percent ' prima riga con sfondo
grigio
    .Cell(1, 1).Range.InsertAfter "Disciplina"
    .Cell(1, 2).Range.InsertAfter "Firma Docente"
    .Cell(1, 3).Range.InsertAfter "Pres."
    .Cell(1, 4).Range.InsertAfter "Ass."
End With
grazie.
Roberto

 Roberto
Prova a sostituire ActiveDocument con Doc:
  Set myTable = Doc.Tables.Add(Selection.Range, Totale + 1, 4)
o con Wrd.ActiveDocument.
Questo non ha niente a che fare con l'errore ma già che ci sono te lo
segnalo:
  Dim dirigente, studenti_presenti, genitori_presenti, Discipline,
  Allievo, voto_condotta, motivazione As String
questa riga dichiara solo 'motivazione' come String, tutte le altre
saranno di tipo variant. Devi ripetere il tipo (As String) dopo il nome di
ogni variabile (vedi l'help di Dim).
Stessa cosa per questa:
  Dim Rst, Rst_Debito, Rst_Allievo As DAO.Recordset
che dovrebbe essere così:
  Dim Rst As DAO.Recordset, Rst_Debito As DAO.Recordset,
  Rst_Allievo As DAO.Recordset


 ha scritto nel messaggio
news:dg3avv$6b6$1...@news.newsland.it...

ho ridefinito le variabili come mi hai detto e ho provato sia con
Set myTable = Doc.Tables.Add(Selection.Range, Totale + 1, 4)
 che con
Wrd.ActiveDocument.Tables.Add(Selection.Range, Totale + 1, 4)
ma purtroppo il risultato non cambia.
Una volta si e una no mi segnala lo stesso errore.
Non so se può essere importante comunque io compilo in questo modo altri mod
elli di word senza errore.
A differenza di questo modello hanno dei semplici bookmark compilati con
solo testo, senza tabelle nè dati prelevati da una tabella di access.
Roberto

 Roberto
Non ho visto nel codice la riga dove dichiari l'oggetto myTable. E' del
tipo giusto?
Poi controlla di chiudere e distruggere correttamente gli oggetti Wrd e
Doc alla fine del codice, e controlla che non si verifichino casi in cui
la sub esce senza chiuderli.


 ha scritto nel messaggio
news:dg5s4q$alh$1...@news.newsland.it...

Io chiudo gli oggetti in questo modo:
Set Wrd = Nothing
set Doc = Nothing
mentre per quanto riguarda il tipo dell'oggetto myTable sinceramente non lo
so e non l'ho dichiarato.
Roberto

 Roberto
Dichiaralo  Dim myTable As Word.Table
Aggiungi un  Set myTable = Nothing  dove distruggi gli altri oggetti.
Poi aggiungi anche un  Option Explicit  all'inizio del codice, come prima
riga del modulo, e fai Debug/Compila.... per vedere se ci sono altre
variabili non dichiarate.
Namor

 ha scritto nel messaggio
news:ZyFVe.2373$pq6....@twister2.libero.it...

purtroppo sempre lo stesso problema.
La prima volta va la seconda no. Se termino com DoCmd.Quit allora quando lo
eseguo nuovamente va. Ma questo era ovvio da prima.
Roberto

 Roberto
C'è qualcosa che resta in memoria, lo prova il fatto che l'errore appare
solo a partire dalla seconda esecuzione.
Non saprei darti maggiori informazioni, bisognerebbe fare qualche prova.
Hai installato i service packs e gli aggiornamenti più recenti?


 Namor
NO non li ho installati però ho provato il programma anche in pc in cui è
installato Windows XP Pro con Office XP ottenendo lo stesso errore. Per ora
non sapendo come procedere ho inserito, come ti avevo accennato, il comando
DoCmd.Quit al termine della procedura. Se si ha la necessità di compilare un
altro modulo si riavvia il programma.
Grazie
Roberto

 ha scritto nel messaggio
news:r0gWe.55751$O6.29...@news3.tin.it...

Io uso due computer (uno configurato come Robby seger - un grande
windsurfista- e uno configurato con il mio nome Roberto). A volte mi sbaglio
come questa volta e rispondo ad un Thread  con l'altro pc o voceversa.
Roberto