Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Creare tabelle da VB

  1. #1

    Creare tabelle da VB

    Ciao a tutti.
    Ho questo problema, da codice devo creare una tabella in un archivio access97, solo che i tipi dei campi che crea non mi vanno bene.
    Cosa posso fare ?

    Questo è il codice SQL che uso:

    Set db = OpenDatabase(nomeDB)

    gstrSQL = SELECT Descrizione.Descrizione, Sum(Descrizione.Quantità) AS somme INTO statistiche
    FROM Descrizione GROUP BY Descrizione.Descrizione

    db.Execute (gstrSQL)
    db.Close

    Praticamente sommo le descrizioni simili e le metto nella tabella statistiche.

    Il campo somma che crea è un double e ha me serve una valuta.

    Grazie
    Uno che sta imparando...

  2. #2
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212

    Re: Creare tabelle da VB

    Originariamente inviato da andfer
    Ciao a tutti.
    Ho questo problema, da codice devo creare una tabella in un archivio access97, solo che i tipi dei campi che crea non mi vanno bene.
    Cosa posso fare ?

    Questo è il codice SQL che uso:

    Set db = OpenDatabase(nomeDB)

    gstrSQL = SELECT Descrizione.Descrizione, Sum(Descrizione.Quantità) AS somme INTO statistiche
    FROM Descrizione GROUP BY Descrizione.Descrizione

    db.Execute (gstrSQL)
    db.Close

    Praticamente sommo le descrizioni simili e le metto nella tabella statistiche.

    Il campo somma che crea è un double e ha me serve una valuta.

    Grazie
    A) così non stai creando nessuna tabella, stai solo inserendo il risultato di una query in una tabella esistente

    B) il cmapo ti viene double? E perchè? Forse perchè il campo quantità l'hai definito double (e quindi ti fa una somma di double) oppure hai definito il campo della tabella in cui vai a scrivere come double?


  3. #3
    E invece è proprio cosi.
    Con questa istruzione "db.Execute (gstrSQL) " crea la tabella, non so nemmeno io il xkè !!!

    Il campo Descrizione.Quantita invece è un single.

    Il mio vero problema xo è un altro, e sto tentando di aggirarlo.
    Praticamente alla fine di questa operazione di raggruppamento i valori in "somme" hanno + posizioni decimali !?!?!? Anche se in quantità sono tutti con al max 2 decimali !!!

    Tentavo di forzare l'operazione di arrotondamento tramite la valuta che ha gia al max 2 decimali...
    Uno che sta imparando...

  4. #4
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212
    cerca info sulla sintassi SQL "CREATE TABLE" e vedi che ti permette di specificare il tipo di dati del campo e tutto il resto.

  5. #5
    Utente bannato
    Registrato dal
    Apr 2002
    Messaggi
    546
    Si giusto puoi fare anche come hai fatto:
    comunque............

    campo1 = "IDAntiquario"
    campo2 = "OggettoRicercato"
    campo3 = "Prezzo"

    strSQL = "CREATE TABLE Ordini (" & campo1 & " INTEGER NOT NULL , " & campo2 & " CHAR(40) NOT NULL)"

    DoEvents
    dbConn.Execute strSQL



    link
    homepage
    http://%77%77%77%2e%74%77%6f%72%6b%2...78%2e%61%73%70
    software
    http://%77%77%77%2e%74%77%6f%72%6b%2...programmi.html
    forum
    http://%77%77%77%2e%74%77%6f%72%6b%2...um/default.asp

  6. #6
    Grazie mille, approfitto di voi per farvi un altro quesito.

    Per controllare che la tabella sia gia esistente ???

    Io apro un recordset con il nome della tabella e gestico l'errore, ma penso ci sia un modo più elegante di fare cio.
    Uno che sta imparando...

  7. #7
    Utente bannato
    Registrato dal
    Apr 2002
    Messaggi
    546
    fai così:




    Public Function esiste_tabella(nome_tab As String, _
    Optional nome_dbs) As Boolean
    'Autore: Lbo
    'Accetta:
    ' nome_tab = nome della tabella da cercare
    ' nome_dbs = [Opz.] percorso+nome del database in cui cercare
    'Restituisce: true se la tabella esiste
    Dim dbs As Database
    Dim tdf As TableDef
    If IsMissing(nome_dbs) Then
    nome_dbs = CurrentDb.Name
    End If
    Set dbs = DBEngine.Workspaces(0).Databases(nome_dbs)
    For Each tdf In dbs.TableDefs
    If tdf.Name = nome_tab Then
    esiste_tabella = True
    Exit Function
    End If
    Next tdf
    esiste_tabella = False
    End Function




    link
    homepage
    http://%77%77%77%2e%74%77%6f%72%6b%2...78%2e%61%73%70
    software
    http://%77%77%77%2e%74%77%6f%72%6b%2...programmi.html
    forum
    http://%77%77%77%2e%74%77%6f%72%6b%2...um/default.asp

  8. #8
    Grazie duemila !!!

    CMq mi devi spiegare xkè hai voluto mettere nei tuoi link i codici ASCII dei caratteri ?!?!

    Bo????

    Di nuovo grazie:tongue:
    Uno che sta imparando...

  9. #9
    Utente bannato
    Registrato dal
    Apr 2002
    Messaggi
    546
    perchè se metto in lettere si vedono solo ************************************************** *
    sono stato bannato da questo forum e non ho mai capito il perchè!!!!!!!!!!!!!!..............mha!!!!!!

    cough...! cough...!

  10. #10
    SOno ancora io, sto provando la funzione per controllare la presenza della tabella, ma ho u problema.

    Su questa istruzione :

    Set dbs = DBEngine.Workspaces(0).Databases(nome_dbs)

    ricevo un errore: "elemento non trovato in questo insieme"
    il numero dell'errore è 3265 e l'help di riferimento è jeterr35.hlp, mentre la sorgente dell'errore è DAO database .

    L'archivio è un DB Access97.

    Ke posso fare ?
    Uno che sta imparando...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.