Newsgroup: it.comp.appl.access
Titolo: access 97 e tapi di win XP

Buongiorno a tutti e ben ritrovati.
Da completo dilettante anni fa mi feci una micro applicazioine con access 97 
in win 95 con la quale ho sempre gestito le mie pratiche, il tutto anche 
grazie a it.comp.database.access e, tra gli altri, lbo.
Una delle cose piu' utili per me era l'automazione della gestione telefono: 
un piccola routine (che avevo spudoratamente copiato dalla relativa 
autocomposizione senza saper bene quel che facevo) al doppio click su un 
numero di telefono chiamava l'applicazione autodial e le passava la stringa 
da comporre. Nel mio caso:
 strDial = "0," & Me! [NumTel]
perche' passo per un centralino.
Questa la linea:
Application.Run "utility.wlib_AutoDial", strDial
Ora son dovuto passare a win xp e mi son portato dietro office 97 e la mia 
micro applicazione
MA:
dialer.exe, contenuto nella cartella "programmi\winNT", funziona in modo 
diverso (nessuna documentazione utile)
quando gli arriva la stringa contenente la "," pensa che si tratti di un 
indirizzo IP (!) e vuol fare una chiamata via internet.
Poco male, direte voi, basta configurare le regole di composizione.
Gia', pero':
dopo aver brigato per un pezzo e finalmente capito che Telephony API traduce 
secondo le regole di composizione solamente i numeri in formato completo e 
cioe' "+##(###)###-###", ho dovuto constatare che se compongo direttamente 
il numero nella applicazione dialer.exe con il formato giusto va tutto bene: 
il numero viene tradotto secondo le regole di composizione e tutto funziona; 
se invece passo a dialer.exe la stringa come sopra, il numero non viene 
tradotto e viene composto tal quale con la sola eliminazione dei caratteri 
non numerici.
Non riesco a trovare una soluzione.
Qualcuno puo' suggerirmi cosa fare? o indicarmi un punto di partenza o una 
idea?
In alternativa qualche anima buona potrebbe dirmi se ancora esiste nelle 
versioni nuove di access, la autocomposizione comando che ho copiato io  e 
cosa "autocompone"?
Grazie
-- 
Ciao ;)
massimo
--------------->antispam: la K <----------------- 

"Massimo Cesareo" <Massimo...@Kiol.it> ha scritto nel messaggio 
news:iizMf.10448$A83.2...@twister1.libero.it...

Se costruisci la stringa in questo modo:
http://support.microsoft.com/kb/266253/it
non dovresti avere problemi...
Ciao.
-- 
Sergio MAZZA 

 non dovresti avere problemi...
e' proprio qui il problema:
se scrivo i numero in connessione telefonica in quel modo va tutto bene,
se lo mando da access tapi non lo "traduce"
grazie


"Massimo Cesareo" <Massimo...@Kiol.it> ha scritto nel messaggio 
news:iizMf.10448$A83.2...@twister1.libero.it...

Devi impostare le "Opzioni modem e telefono" da pannello di controllo e poi 
passare la stringa del solo numero telefonico.
In pratica in opzioni modem imposti il numero di accesso alla linea esterna, 
nel tuo caso "0" e nel programma devi solo passare il numero.
Ciao, Carlo 

 --------------->antispam: la K <----------------- 
Il codice? Forse non è scritta bene l'istruzione...
Ciao.
-- 
Sergio MAZZA 

 Ciao, Carlo
Dunque, ho capito di essermi spiegato male :-)
il problema e' la virgola "," = pausa dopo lo zero per attendere la linea
esterna
caso 1)
opzioni modem e telefono -> regole di composizione = vuoto
non posso passare " 0, " perche' dialer ritiene sia un indirizzo ip;
caso2)
opzioni modem e telefono -> regole di composizione -> per accedere ad una
linea esterna componi = " 0, "
numero da comporre  = " 
+39 (075) 123456
 "
2.1) se scrivo il numero nella finestra componi di dialer.exe, compone
"0,075 123456" e va bene
2.2) se compongo una stringa = " 
+39 (075) 123456
 " e la passo come
argomento a "utility.wlib_autodial", viene chiamato dialer.exe ma compone
"39075123456" che NON va bene.
Speravo ci fosse un modo per risolvere tipo:
- dire ad autodial "guarda che e' una chiamata telefonica" (spuntare la
relativa casella "predefinita" non serve);
- oppure capire perche' autodial tratta in modo diverso il numero se gli
viene dalla chiamata di utility.wlib oppure lo passa in modo diverso a tapi
- altro che non riesco ad immaginare ma, magari, l'autocomposizione di
access piu' recente del mio utilizza delle istruzioni diverse dalle quali
potrei capire.
- o, ancora, in altri sistemi il tutto funziona normalmente e quindi ho
qualche problema, magari al registro anche se si tratta di un XP home SP 2
appena installato e windowsupgradato.
Grazie a tutti :-)


 Il codice? Forse non è scritta bene l'istruzione...
e' piu' complesso di quanto attualmente necessario perche' una volta usavo 
diversi gestori per i cellulari, inoltre alcuni campi avevano il prefisso 
locale e altri no
comunque:
Private Sub NumTel_DblClick(Cancel As Integer)
On Error GoTo Err_telefon_Click
    Dim strDial As String
    Const ERR_OBJNOTEXIST = 2467
    Const ERR_OBJNOTSET = 91
If IsNull(Me![NumTel]) Then Exit Sub
If Left$(Me![NumTel], 1) = "0" Or Left$(Me![NumTel], 1) = "3" Then
    If Left$(Me![NumTel], 3) = "075" Then
            strDial = "+39()" & Me![NumTel]
            Else
            strDial = "+39()" & Me![NumTel]
        End If
    Else
    strDial = "+39()075 " & Me![NumTel]
    End If
    Application.Run "utility.wlib_AutoDial", strDial
Exit_telefon_Click:
    Exit Sub
Err_telefon_Click:
    If (Err = ERR_OBJNOTEXIST) Or (Err = ERR_OBJNOTSET) Then
      Resume Next
    End If
    MsgBox Err.Description
    Resume Exit_telefon_Click
End Sub
andiamoci piano eh? :-)


 massimo
 Ciao, Carlo 

 Funziona benissimo con XP sp2.
OK; PANIC! :-)
Mentre mi dispero mi sovviene che "prima" che si apra dialer.exe compare una 
mini dialog che si chiama "Composizione automatica" (con il look di win 95) 
che ha un campo "Numero" dove posso cambiare il numero che ho passato con la 
stringa e tre comandi "OK" - "annulla" - "imposta..."
mentre la corrispondente dialog del dialer di win xp è radicalmente diversa.
Puo' significare qualcosa?
Magari sto' utilizzando quando comando supportato male e solo per 
retrocompatibilita'?
Comincio a preoccuparmi.
Ari_grazie


"Massimo Cesareo" <Massimo...@Kiol.it> ha scritto nel messaggio 
news:bdXMf.12589$A83.3...@twister1.libero.it...

Questa la funzione che uso:
Dim strDialStr As String
    Dim ctlPrevCtl As Control
    Const ERR_OBJNOTEXIST = 2467
    Const ERR_OBJNOTSET = 91
    Me.Refresh
    Set ctlPrevCtl = Me.TelefonoUfficio
    If TypeOf ctlPrevCtl Is TextBox Then
      strDialStr = IIf(VarType(ctlPrevCtl) > V_NULL, ctlPrevCtl, "")
    ElseIf TypeOf ctlPrevCtl Is ListBox Then
      strDialStr = IIf(VarType(ctlPrevCtl) > V_NULL, ctlPrevCtl, "")
    ElseIf TypeOf ctlPrevCtl Is ComboBox Then
      strDialStr = IIf(VarType(ctlPrevCtl) > V_NULL, ctlPrevCtl, "")
    Else
      strDialStr = ""
    End If
    Application.Run "utility.wlib_AutoDial", strDialStr
Ciao, Carlo 

    Application.Run "utility.wlib_AutoDial", strDialStr
non so cosa ci sia nelle tue "origini" ma mi pare di capire che confezioni 
una stringa come sappiamo e la passi con l'istruzione di cui sopra, 
esattamente uguale a quella che uso io (vedi risposta a Sergio Mazza).
Magari il tutto in access 97 con win xp. E funziona perfettamente.
In altre parole sono nei guai :-(


"Massimo Cesareo" <Massimo...@Kiol.it> ha scritto nel messaggio 
news:5B_Mf.12970$A83.3...@twister1.libero.it...

 Questo dovrebbe risolvere il tuo problema:
http://support.microsoft.com/?kbid=837146
Ciao, Carlo 


Si, infatti :-))
l'ho sfrondato un pochetto ma funziona perfettamente.
Non so che cosa dire, probabilmente da solo non ne sarei mai uscito o ci 
avrei messo una eternita'.
Grazie infinite
