Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Celle database e numeri

Ciao a tutti!
Probabilmente sarà una stupidaggine, ma non riesco a scrivere nelle 
celle di una tabella Access una stringa numerica che comincia con 0 
(un numero di telefono).
Ho provato a settare in tutti i modi il formato, ma nemmeno inserendo a 
mano funziona.
Ho provato a creare un formato personale, ma non ci sono riuscito...
Mi sapete dire qualcosa in proposito (per gli insulti ho provveduto da 
solo :) )
grazie
ciao
-- 
degra

 ha scritto nel messaggio
news:9p2c9c$g6pl3$1...@ID-108574.news.dfncis.de...

Ciao. potresti postare la struttura della tabella e/o del campo?
Hai per caso specificato una maschera di input particolare per quel campo?


La tabella è una tabella  a 5 colonne (nome, cognome, prefisso, numero,
email), di un db Access2000, collegata ad una DataGrid con ADOdc.
Il formato del campo è numero generico intero lungo (perchè altrimenti i
numeri di telefono superano le dimensioni), ma l'ho impostato anche come
testo, senza differenti risultati.
Non ho usato nessuna maschera di input.
ciao
degra

Non ho usato nessuna maschera di input.
Se il campo e' Long non credo che venga visualizzato con lo 0 davanti,
a meno di non intervenire con delle formattazioni.
Se e' Text allora trovo strano che "decida" di togliere lo zero iniziale.
Eventualmente, hai provato a mettere anche uno spazio davanti allo zero ?
ciao, hal


Beh... parla di "stringa numerica"... suppongo che sia uno string.
Probabilmente il problema è di maschera di input di access...
ciao
ugo

 Eventualmente, hai provato a mettere anche uno spazio davanti allo
zero ?
ho provato anche con lo spazio, ma non lo riconosce.
Posto il codice che uso, non so se interessa... ho preso spunto da MSDN
Public Sub NuovoContatto()
   Dim cnn1 As ADODB.Connection
   Dim rstRubrica As ADODB.Recordset
   Dim strCnn As String
   Dim strNome As String
   Dim strCognome As String
   Dim strPref As String
   Dim strNumero As String
   Dim strEmail As String
   Dim booRecordAdded As Boolean
   ' Apre una connessione.
   Set cnn1 = New ADODB.Connection
   strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=D:\Documenti\rubrica1.mdb;Persist Security Info=False"
   cnn1.Open strCnn
   ' Apre la tabella rubrica.
   Set rstRubrica = New ADODB.Recordset
   rstRubrica.CursorType = adOpenKeyset
   rstRubrica.LockType = adLockOptimistic
   rstRubrica.Open "rubrica", cnn1, , , adCmdTable
   ' Inizializza le variabili dei campi
   strNome = Trim(Text1(0))
   strCognome = Trim(Text1(1))
   strPref = Trim(Text1(2))
   strNumero = Format(Trim(Text1(3)), "########")
   strEmail = Trim(Text1(4))
   ' Procede solo se l'utente ha effettivamente
   ' specificato i campi indispensabili.
   If (strNome <> "") _
      And (strCognome <> "") And (strPref <> "") And (strNumero <> "")
Then
   rstRubrica.AddNew
   rstRubrica!nome = strNome
   rstRubrica!cognome = strCognome
   rstRubrica!prefisso = strPref
   rstRubrica!numero = strNumero
   If strEmail <> "" Then
    rstRubrica!email = strEmail
   End If
   rstRubrica.Update
   booRecordAdded = True
   ' Visualizza gli ultimi dati aggiunti.
   If rstRubrica!email <> "" Then
    MsgBox "Contatto inserito:" & vbCrLf & " Nome: " & rstRubrica!nome &
vbCrLf & "Cognome: " & rstRubrica!cognome & vbCrLf & _
    "Numero: " & rstRubrica!prefisso & rstRubrica!numero & vbCrLf &
"E-Mail: " & rstRubrica!email
   Else
    MsgBox "Contatto inserito:" & vbCrLf & " Nome: " & rstRubrica!nome &
vbCrLf & "Cognome: " & rstRubrica!cognome & vbCrLf & _
    "Numero: " & rstRubrica!prefisso & rstRubrica!numero
   End If
   'cancello i campi per evitare doppi inserimenti
   Dim i As Integer
   For i = 0 To 4
    Text1(i) = ""
   Next i
   Else
      MsgBox "Riempire i campi obbligatori: " & _
      vbCrLf & "Nome, Cognome, Prefisso e Numero", vbExclamation,
"Attenzione!"
   End If
End Sub
ciao
degra

    strNumero = Format(Trim(Text1(3)), "########")
   strNumero = Format(Trim(Text1(3)), "0#######")
ciao
ugo

   strNumero = Format(Trim(Text1(3)), "########")
Eccolo qui: sei tu che gli toglii lo zero :-)
scrivi:
strNumero = Trim$(Text1(3).Text)       ' dovrebbe bastare
'  altrimenti
strNumero = Format$(Trim$(Text1(3).Text), String(Len(Trim$(Text1(3).Text), "@")
ciao, hal
p.s.
controlla le parentesi, ho scritto direttamente in newspro.

 ha scritto nel messaggio
news:9p2sls$lpn$1...@pegasus.tiscalinet.it...

Già provato, ma non va lo stesso...
grazie
degra

   strNumero = Format(Trim(Text1(3)), "0#######")
flic floc ;-)

 ha scritto nel messaggio
news:9p2stn$g16el$1...@ID-56381.news.dfncis.de...

purtroppo non va.....
degra


Meglio ancora.
ciao
ugo


Ok... pensato...
:-)
ciao
ugo

purtroppo non va.....
_deve_ funzionare, l' ho appena provato.
Public Sub Test()
    Dim Testo As String
 
    Testo = "0334567890"
    Debug.Print Format$(Trim$(Testo), String(Len(Trim$(Testo)), "@"))
End Sub
ciao, hal

 ha scritto nel messaggio
news:9p2tjh$ge45f$1...@ID-56381.news.dfncis.de...

Scusa, è vero, funziona... mi ero dimenticato di reimpostare a testo il
campo da access...
grazie 1000!
degra