+ Rispondi al messaggio
Pagina 3 di 7 primaprima 12345 ... ultimoultimo
Visualizzazione dei risultati da 21 a 30 su 61

[VBAOutlook] problema salvando un msg di outlook 2010 per lunghezza del nome del file

  1. #21
    L'avatar di MaurizioBruni
    MaurizioBruni non  in linea Scribacchino
    Scusami Antonio, ma non avevo trovato una sezione riservata al VBA di outlook
    ℹ️ Leggi di pi su MaurizioBruni ...

  2. #22
    Era meglio chiedere . Ho spostato la discussione
    ℹ️ Leggi di pi su AntonioG ...

  3. #23
    Quote Originariamente inviato da MaurizioBruni Visualizza il messaggio
    ...Temo che non sar capace di risolvere questo problema.
    Io per non demordo. Allora, la mia specialit, come ormai l'intero forum sa, VBA da Access e con Access, gi che ci sia di mezzo SQL Server mi spiazza un po'. Ma avanti.
    Riusciresti a trasmigrare tutto in Access, su maschere che mi sono pi congeniali e soprattutto con il database che non deve essere "istanziato dall'esterno"?
    Passo gi ad entrare un po' nel merito del codice (perch alla fine spunta lo stesso)
    Set rst = Db.OpenRecordset(strsql, dbReadOnly)
    ' scorro i record e li aggiungo alla listbox
    For X = 1 To nrecords
                    Me.ElencoPratiche.AddItem " "
    ...
                    rst.MoveNext
    Next
    
    da dove spunta nrecords?
    Ne butto l un altro pezzo
    strsql = "SELECT ..., [tpr_Directory] & '\' & [pra_Nome] & '\' AS percorso , ..."
    
    Prova a fare la concatenazione di creazione del percorso al di fuori della query, solo in VBA, tanto serve l e basta o no?
    Ultima modifica di Phil_cattivocarattere; 03-07-2021 09:23 

  4. #24
    L'avatar di @Alex
    @Alex non  in linea Moderatore Globale
    Io ci ho capito poco della confusione... ma punterei al fatto che questa parte di codice la vedo dubbia...
    Set Db = OpenDatabase(nomeMdb, False, False)
    Set rst = Db.OpenRecordset(strsql, dbReadOnly)
    ' scorro i record e li aggiungo alla listbox
    For X = 1 To nrecords  <-------- DA DOVE ARRIVA...?
     .....
    Next
    
    In base a cosa dici di scorrere i records....?
    Chi valorizza [nrecords]...?
    Perch non fai un Do...Loop ciclando i Records ed incrementi un Counter come farebbe qualsiasi cristiano... (inteso come qualsiasi persona).
    Poi non serve indicizzare il valore... basta concatenare la stringa con il ";"
    rst.MoveFirst
    Do Until rst.EOF
        Me.ElencoPratiche.AddItem rst.Fields(0).Value & ";" & rst.Fields(1).Value & ";" rst.Fields(2).Value
        rst.MoveNext
    Loop
    
    ℹ️ Leggi di pi su @Alex ...

  5. #25
    L'avatar di MaurizioBruni
    MaurizioBruni non  in linea Scribacchino
    nrecords viene da qui
            Set rst = Db.OpenRecordset(strsql, dbReadOnly)
            If rst.EOF Then
                Beep
            Else
                rst.MoveLast
                nrecords = rst.RecordCount
                rst.MoveFirst
                If nrecords > maxNRec Then
                    Beep
                    Exit Sub
                End If
    
    Mi serve saperlo perch sto facendo una ricerca in base a quello che digita l'utente, e se la ricerca rende + di maxNRec abbandono.
    il filtro nella strsql con cui apro il recordset, che seleziona tutti i record contenenti la stringa ricercata dall'utente.
    A parte la poca eleganza e compattezza che mi rinfaccia (giustamente) Alex, il problema sempre quello:
                    Me.ElencoPratiche.List(X - 1, 0) = rst.Fields(0).Value
    
    gi qui rst.Fields(0).Value mi rende il valore troncato.
    In access maneggio gli stessi dati con lo stesso mio stile :( senza perdermi nulla.
    Tutti gli oggetti sono DAO.
    L'unica differenza importante mi pare sia che in access ho la tbl di sql direttamente collegata da ODBC, mentre in outlook mi appoggio proprio a quella tabella linkata in access.
    Per completezza questi sono i riferimenti presenti nel progetto di access che usa quegli stessi dati
    Nome:   ScreenShot.jpg
Visite:  27
Grandezza:  18.0 KB
    ℹ️ Leggi di pi su MaurizioBruni ...

  6. #26
    L'avatar di @Alex
    @Alex non  in linea Moderatore Globale
    Quote Originariamente inviato da MaurizioBruni Visualizza il messaggio
    nrecords viene da qui
    ....
    A parte la poca eleganza e compattezza che mi rinfaccia (giustamente) Alex, il problema sempre quello:
    ...
    Non rinfaccio nulla, sicuramente un suggerimento di approccio pi funzionale, ovviamente fai quello che per te risulta meglio... , se i suggerimenti non piacciono basta non scrivere... ;-)

    Impara a fare DEBUG... e vedi chi tronca e come... finch non fai qualche passo avanti... sono tutte "supposte".
    ℹ️ Leggi di pi su @Alex ...

  7. #27
    L'avatar di MaurizioBruni
    MaurizioBruni non  in linea Scribacchino
    proprio con il debug che mi accorgo che la stringa troncata!
    Nome:   ScreenShot.jpg
Visite:  25
Grandezza:  20.3 KB
    l'ultima parola della stringa dovrebbe essere "capitale"
    Nome:   ScreenShot001.jpg
Visite:  24
Grandezza:  10.9 KB
    Poi ovviamente la vedo troncata anche nella listbox
    Nome:   ScreenShot002.jpg
Visite:  24
Grandezza:  8.3 KB
    la domanda chi tronca e come necessita di due risposte: come tronca lo vedo, il mistero CHI lo fa
    ℹ️ Leggi di pi su MaurizioBruni ...

  8. #28
    L'avatar di @Alex
    @Alex non  in linea Moderatore Globale
    Fai il Debug.Print di rst.fileds(1) e vedi.... leggi il LEN(rst.fileds(1))... il Campo Testo...? Max 255Chars...?
    Verifica che non ci siano caratteri strani... ecc...
    ℹ️ Leggi di pi su @Alex ...

  9. #29
    L'avatar di MaurizioBruni
    MaurizioBruni non  in linea Scribacchino
    Fai il Debug.Print di rst.fileds(1) e vedi.... leggi il LEN(rst.fileds(1))...
    mi scappato un F8 di troppo
    ecco la struttura della tbl SQL che vedo da access (dove collegata ODBC)
    Nome:   ScreenShot003.jpg
Visite:  23
Grandezza:  19.8 KB
    il campo pra_nome, 100 char
    ma lo tronca a 50 car.
    Nome:   ScreenShot004.jpg
Visite:  23
Grandezza:  12.1 KB
    NB lo tronca SOLO quando lo leggo da VBA di outlook, da access tutto OK
    Ultima modifica di MaurizioBruni; 05-07-2021 17:34 
    ℹ️ Leggi di pi su MaurizioBruni ...

  10. #30
    L'avatar di Max.Riservo
    Max.Riservo non  in linea Scribacchino
    Quindi, ricapitolando :
    - base dati MSSQL (o MySQL o altro)
    - campo nel db di tipo varchar(100)
    - tabella collegata tramite ODBC ad Access (e il campo risulta essere text(100))
    - campo visualizzato in Access correttamente (lunghezza 100 caratteri)
    - tramite VBA di Outlook accesso alla tabella collegata in Access e il campo risulta essere text(50)

    Difficile capire dove risiede il problema : come primo passaggio suggerirei di rimuovere il collegamento della tabella da Access e di ricrearlo (il suggerimento ampiamente valido se dopo il collegamento della tabella ad Access sono state apportate delle modifiche al BackEnd).

    100 caratteri che diventano 50 ... forse si tratta di un problema di encoding tra UTF-8 e UTF-16 ... forse (ma al momento non saprei come verificarlo).

+ Rispondi al messaggio
Pagina 3 di 7 primaprima 12345 ... ultimoultimo

Potrebbero interessarti anche ...

  1. Risposte: 1
    Ultimo Post: 07-02-2018, 23:47
  2. Problema condivisione attivit outlook 2010
    Da stiffler nel forum Microsoft Word
    Risposte: 2
    Ultimo Post: 08-04-2015, 12:10
  3. Access 2010 e Outlook 2010
    Da info@mar-gom.it nel forum Microsoft Access
    Risposte: 0
    Ultimo Post: 18-06-2014, 09:00
  4. Risolto: [VB exp 2010] Lunghezza testo textbox
    Da vbrookie nel forum Visual Basic .Net
    Risposte: 2
    Ultimo Post: 14-01-2011, 23:21
  5. [vba] problema: data nel nome file copiato
    Da Chiari nel forum Microsoft Word
    Risposte: 21
    Ultimo Post: 21-03-2009, 12:09