Newsgroup: it.comp.appl.access
Titolo: [MSDE] Access 2002 GetDate

Salve a tutto il NG!
Vorrei sottoporVi un quesito forse banale ma non ne vengo fuori!!
Ho una routine evento dove ho inserito alla fine di una loop Me.Data =
GetDate e fin quì tutto ok.
Solo che ora ho dovuto trasportare questa private sub in una public function
ovviamente mi dice che la variabile non è stata dichiarata.... ma come
accidenti posso fare? Mi sto arrovellando il cervello ma non ci riesco!!
Qualcuno ha un aiuto??
Grazie Mille
Ultra

 ha scritto nel messaggio
news:dUlld.320753$35.14...@news4.tin.it...

Ciao  Ultra
 immagino che stai parlando di una funzione pubblica in un modulo BAS, in
questo caso non puoi riferirti all'oggetto ME che usavi nel modulo di classe
di una maschera o di un report.
immagino anche che tu voglia usare la Funzione GetDate di MSDE, in questo
caso ti ricordo che MSDE non ha nessuna interazione con VBA. Se
ti serve la data odierna puoi usare la funzione VBA Date(), se invece ti
server la data odierna del server su cui gira MSDE allora devi interrogarlo
(ad esempio) con un DlookUp
----------------
Dim Data As Variant
Data = DLookup("GETDATE()", "UnaTabella")
----------------
[UnaTabella] è il nome di una qualsiasi tabella esistente nel tuo database.
(se ho immaginato male prova a fare un esempio di cosa ti serve)
Ciao Giorgio

 Ciao Giorgio
Ciao Giorgio,
Forse mi sono spiegato male....
Allora, ho una form che è collegata ad un modulo che inizia con Option
compare Database Option Explicit
In una riga di questo codice che è una public function, ho scritto:
Forms!frmBolle!Data = GetDate
Se avessi scritto Date() il programma me lo avrebbe cambiato in Date e basta
senza le parentesi e non me lo riconosce (non sò perchè).
Ovviamente il codice è scritto su di un .adp.
Volevo dire che GetDate mi funziona benissimo se uso una Private Sub ma se
uso una public function mi dice che non è dichiarata la variabile.....ma non
capisco perchè..... mi serve incollare
su di un campo testo la data di oggi solo questo!
Poi volevo chiedere un'altra cosa, mentre lavoravo, mi sono accorto che il
carattere della tabella (ossia il carattere dei dati che sono stati
inseriti, per intenderci i records) è cambiato.
Io non  l'ho cambiato e non capisco che cavolo sia successo...... si vede
malissimo!!! Sulle opzioni si access non riesco a cambiare il carattere
perchè se clicco sulla finestra a tendina del carattere esso
risulta vuoto!!
Grazie ancora
Ultra

 risulta vuoto!!
questa è una cosa stranissima, mi viene da suggerire il solito *Prova a
riavviare il sistema*, sembra una barzelletta ma in genere funziona :-)
Ciao Giorgio

 Ciao Giorgio
Ciao Giorgio,
Ho provato a resettare ma nulla.... sembra un carattere finissimo come
quello che di solito usano i cinesi.... guarda non ci capisco nulla....
ehehehehe
Altra cosa stranissima.... nella tabella DettaglioBolle ho la necessità di
avere un tipo dati come il famoso numerico precisione doppia che usava il
famoso access. Ora con MSDE non è così.... ho provato con decimal... poi con
float ma nulla da fare.... se il valore da inserire è 60,35 sulla tabella mi
viene scritto 60,35... se invece ho un importo intero esempio 15,00 sulla
tabella viene riportato 15
invece avrei necessità di avere il valore preciso (anche se dopo la virgola
ci siano 2 zeri)  Altro esempio: 1.500,45 viene riportato 1500,45 senza il
punto.... perchè?? Ho una casella di riepilogo che prende il valore
direttamente da una store di procedure (quindi dalla tabella) e come puoi
ben immaginare mi ripete quello che trova nella tabella. La cosa non va.....
sono alla frutta!!!
Grazie ancora!!
Ultra


Ciao Ultra,
non devi confondere il tipo di dato con la sua rappresentazione. SQL Server
non ha funzioni per formattare un numero, è un compito dell'applicazione
client.
Purtroppo la casella combinata non da la possibilità di assegnare la
formattazione per ogni colonna quindi devi costruirti una funzione lato
server che renda il numero formattato.
Ad esempio con una funzione tipo questa
------------------------------
CREATE Function ufn_FormattaNumero
(@Numero numeric(28,10),
 @Decimali smallint)
RETURNS Varchar(100)
AS BEGIN
DECLARE @RetCode Varchar(50),
        @strNumero Varchar(50),
        @i smallint,
        @Start smallint
-- Converto il numero in stringa
SET @strNumero=Convert(Varchar,@Numero)
-- Tronco i decimali in eccesso
SET @StrNumero=LEFT(@StrNumero,
                    LEN(LTRIM(STR(@Numero,30,0)))+
                    @Decimali+1*SIGN(@Decimali))
-- inverto la stringa
SET @StrNumero=REVERSE(@StrNumero)
-- Determino la partenza dei numeri interi
SET @Start=1+@Decimali+1*SIGN(@Decimali)
-- Inizializzo il contatore del separatore cifre
SET @i=1
-- Inizializzo la stringa di ritorno con la sola parte decimale
SET  @RetCode=Left(@strNumero,@Decimali)+
              CASE WHEN @Decimali>0 THEN ',' ELSE '' END
-- Aggiungo la parte intera intervallata dal separatore decimale
WHILE @Start<=LEN(@strNumero) BEGIN
    SET @RetCode=@RetCode+SUBSTRING(@strNumero,@Start,1)
    IF @i % 3 =0 AND @Start<LEN(@strNumero)
       SET @RetCode=@RetCode+'.'
    SELECT @i=@i+1,
           @Start=@Start+1
END
-- ReInverto la stringa e la rendo
RETURN REVERSE(@RetCode)
END
-----------------------------
Che potrai usare nella tua Stored procedure in questo modo
---------------
SELECT Campo1,
               Campo2,
               dbo.ufn_FormattaNumero(CampoNumerico,2) AS Numero
FROM    TuaTabella
---------------
Per i caratteri *cinesi* prova a vedere se la colpa è di Access o di Sql
Server, Il problema lo hai anche con un MDB ?
Hai verificato la lingua di Sql Server ?
----
SELECT @@Language
----
Ciao Giorgio

 Ciao Ultra,

Ciao Giorgio,
Accidenti..... tutto questo per avere in cambio dei decimali in un numero??
Meglio Spararsi! Non ho ben capito come utilizzarla.... e come creare questa
cosa....
Per i caratteri *cinesi* come li ho definiti bhe si ci fa anche con mdb e
comunque da ieri sembrano essere cambiati.... sembrano vivi eheheheheheh
ogni tanto mi giro e quando ci riguardo è cambiato di nuovo... che dici sarà
stata la causa quel vinello rosso di ieri sera??? ehehehehehe
Proverò con la function ma sono sicuro che mi intreccerò abbastanza..... ci
vuole altro vinello di visciola.... :)))
Grazie ancora per la tua pazienza :)
Ultra