MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


2 participantes

    [Resolvido]Transfromando uma variável string em Double

    avatar
    Convidado
    Convidado


    [Resolvido]Transfromando uma variável string em Double Empty Transfromando uma variável string em Double

    Mensagem  Convidado 20/7/2011, 17:12

    Dim VarDayLight As String
    VarDayLight = FormatInterval([txtTime], "H:MM")


    Amigos esta função pega a data do sistema contida em uma caixa texto e aplica na variável.
    Ocorre que a variável so aceita se form em formato string..

    Preciso converter depois esta variável em double para poder aplicar em uma função, pois na função só aceita dados double


    Como fazer?

    Grato
    Jungli
    Jungli
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 715
    Registrado : 07/05/2010

    [Resolvido]Transfromando uma variável string em Double Empty Re: [Resolvido]Transfromando uma variável string em Double

    Mensagem  Jungli 20/7/2011, 17:24




    Dica:

    CDbl(Replace(VarDayLight, ":", ","))

    Para voltar ao normal:

    Replace(VarDayLight, ",", ":")




    .................................................................................
    "Somos o que repetidamente fazemos.
    A excelência, portanto, não é um feito,
    mas um hábito."

    Aristóteles
    avatar
    Convidado
    Convidado


    [Resolvido]Transfromando uma variável string em Double Empty Re: [Resolvido]Transfromando uma variável string em Double

    Mensagem  Convidado 20/7/2011, 17:28

    Nào entendi....

    Pedoe-me mas o código acima eu estava usando uma função para testar...


    VarDayLight = Format([txtTime], "hh:mm")

    a variável assim acima não aceita o format se a variável for double... ela tem que ser string...

    mas preciso usar na função uma variável Double 00:00 com este formato

    Grato
    avatar
    Convidado
    Convidado


    [Resolvido]Transfromando uma variável string em Double Empty Re: [Resolvido]Transfromando uma variável string em Double

    Mensagem  Convidado 20/7/2011, 17:30

    A funçào que preciso aplicar o Double:


    'Function MoonPHASE(Year As Double, Month As Double, Day As Double, Hour As Double, _
    ' Min As Double, Sec As Double, TIME_ZONE As Double, Daylight_Time As Double, Optional Greg) As Double

    Double significa que tem que ser decimal?
    Jungli
    Jungli
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 715
    Registrado : 07/05/2010

    [Resolvido]Transfromando uma variável string em Double Empty Re: [Resolvido]Transfromando uma variável string em Double

    Mensagem  Jungli 20/7/2011, 17:55

    sim
    O tipo Doublé é utilizado para números grandes com casas decimais

    VarDayLight = CDbl(Replace(Format([txtTime], "hh:mm"), ":", ","))

    avatar
    Convidado
    Convidado


    [Resolvido]Transfromando uma variável string em Double Empty Re: [Resolvido]Transfromando uma variável string em Double

    Mensagem  Convidado 20/7/2011, 18:42

    Jungli.. me ocorreu o seguinte...

    a função de fase lunar requer um dado double...

    ocorre que a sua função apenas substitui os : pela ,

    mas neste caso se a hora for 2:30

    com sua função = 2,30
    mas em horas decimais seriam 2,5

    e isto faz diferença no código...

    postarei parte do código de fase lunar para que ve se consegue identificar em qual formato ele tem que ser

    se decimal ou se conforme sua função..

    entendeu amigão?
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Transfromando uma variável string em Double Empty Re: [Resolvido]Transfromando uma variável string em Double

    Mensagem  criquio 20/7/2011, 18:46

    Não sei a que pé ainda a coisa aí, mas você pode conseguir os minutos em porcentagem decimal mais ou menos assim:

    Percent = 60 - Minutos * 10 / 60


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Convidado
    Convidado


    [Resolvido]Transfromando uma variável string em Double Empty Re: [Resolvido]Transfromando uma variável string em Double

    Mensagem  Convidado 20/7/2011, 18:51

    Boas Criquio... a questão é apenas saber se a função lunar requer horas decimais ou apenas a substituição do ; pela ,

    Para conversão utilizo:

    Public Function HrDbl(stHora As String) As Double
    'Converte um string de hora (formato [h]hh:mm) para Double
    'Ex: "135:30" = 135,5
    'Ex: "23:59" = 23,9833333333333
    Dim dblHoras As Double
    Dim intMinutos As Integer
    Dim blnDoisPontos As Boolean, blnNum As Boolean
    Dim strNum As String

    'Verifica se o sinal de dois pontos ':' está na terceira casa
    'da direita para esquerda
    If Asc(Left(Right(stHora, 3), 1)) = 58 Then
    blnDoisPontos = True
    Else
    blnDoisPontos = False
    End If

    'Verifica se o resto dos dígitos são numéricos
    strNum = Left(stHora, Len(stHora) - 3) & Right(stHora, 2)
    If IsNumeric(strNum) = True Then
    blnNum = True
    Else
    blnNum = False
    End If


    Saudações
    avatar
    Convidado
    Convidado


    [Resolvido]Transfromando uma variável string em Double Empty Re: [Resolvido]Transfromando uma variável string em Double

    Mensagem  Convidado 20/7/2011, 18:52

    Eis o pequeno código para distancia lunar...



    Function MoonDISTANCE_Kms(Year As Double, Month As Double, Day As Double, Hour As Double, _
    Min As Double, Sec As Double, TIME_ZONE As Double, Daylight_Time As Double, Optional Greg) As Double
    YY = Year - Int((12 - Month) / 10)
    If (Year < 1) Then
    YY = Year - Int((12 - Month) / 10) + 1
    End If
    MM = Month + 9
    If (MM >= 12) Then
    MM = MM - 12
    End If
    K1 = Int(365.25 * (YY + 4712))
    K2 = Int(30.6 * MM + 0.5)
    K3 = Int(Int((YY / 100) + 49) * 0.75) - 38
    J1 = K1 + K2 + Day + 59 ' JD for dates in Julian calendar
    If (J1 > 2299160#) Then
    J1 = J1 - K3: ' For Gregorian calendar
    End If
    l1 = J1 + (((Hour + (Min / 60) + (Sec / 3600)) / 24) - 0.5) - ((TIME_ZONE + Daylight_Time) / 24) - 2451545
    'Preciso saber nesta parte em vermelho o valor de TIMEZONE e DAYLIGHT é apenas hora ou decimal
    ' This is the number of Julian Days from the year 2000.
    E13 = l1 / 36525
    B26 = 1 - 0.002516 * E13 - 0.0000074 * E13 ^ 2
    B27 = B26 ^ 2
    C18 = Range360(297.8502042 + 445267.1115168 * E13 - 0.00163 * E13 ^ 2 + E13 ^ 3 / 545868 - E13 ^ 4 / 113065000) * PI / 180
    C19 = Range360(357.5291092 + 35999.0502909 * E13 - 0.0001536 * E13 ^ 2 + E13 ^ 3 / 24490000) * PI / 180
    C20 = Range360(134.9634114 + 477198.8676313 * E13 + 0.008997 * E13 ^ 2 + E13 ^ 3 / 69699 - E13 ^ 4 / 14712000) * PI / 180
    C21 = Range360(93.2720993 + 483202.0175273 * E13 - 0.0034029 * E13 ^ 2 + E13 ^ 3 / 3526000 - E13 ^ 4 / 863310000) * PI / 180
    a = -20905355 * Cos(C20)
    b = -3699111 * Cos(2 * C18 - C20)
    C = -2955968 * Cos(2 * C18)
    d = -569925 * Cos(2 * C20)
    e = 48888 * B26 * Cos(C19)
    F = -3149 * Cos(2 * C21)
    G = 246158 * Cos(2 * C18 - 2 * C20)
    h = -152138 * B26 * Cos(2 * C18 - C19 - C20)
    I = -170733 * Cos(2 * C18 + C20)
    j = -204586 * B26 * Cos(2 * C18 - C19)
    k = -129620 * B26 * Cos(C19 - C20)
    L = 108743 * Cos(C18)
    m = 104755 * B26 * Cos(C19 + C20)
    n = 10321 * Cos(2 * C18 - 2 * C21)
    o = 79661 * Cos(C20 - 2 * C21)
    p = -34782 * Cos(4 * C18 - 1 * C20)
    q = -23210 * Cos(3 * C20)
    r = -21636 * Cos(4 * C18 - 2 * C20)
    S = 24208 * B26 * Cos(2 * C18 + C19 - 1 * C20)
    T = 30824 * B26 * Cos(2 * C18 + C19)
    u = -8379 * Cos(C18 - C20)
    V = -16675 * B26 * Cos(C18 + C19)
    w = -12831 * B26 * Cos(2 * C18 - C19 + C20)
    X = -10445 * Cos(2 * C18 + 2 * C20)
    Y = -11650 * Cos(4 * C18)
    Z = 14403 * Cos(2 * C18 - 3 * C20)
    aa = -7003 * B26 * Cos(C19 - 2 * C20)
    bb = 10056 * B26 * Cos(2 * C18 - C19 - 2 * C20)
    CC = 6322 * Cos(C18 + C20)
    dd = -9884 * B27 * Cos(2 * C18 - 2 * C19)
    ee = 5751 * B26 * Cos(C19 + 2 * C20)
    ff = -4950 * B27 * Cos(2 * C18 - 2 * C19 - C20)
    GG = 4130 * Cos(2 * C18 + C20 - 2 * C21)
    HH = -3958 * B26 * Cos(4 * C18 - C19 - C20)
    ii = 3258 * Cos(3 * C18 - C20)
    jj = 2616 * B26 * Cos(2 * C18 + C19 + C20)
    kk = -1897 * B26 * Cos(4 * C18 - C19 - 2 * C20)
    ll = -2117 * B27 * Cos(2 * C19 - C20)
    MM = 2354 * B27 * Cos(2 * C18 + 2 * C19 - C20)
    nn = -1423 * Cos(4 * C18 + C20)
    oo = -1117 * Cos(4 * C20)
    pp = -1571 * B26 * Cos(4 * C18 - C19)
    qq = -1739 * Cos(C18 - 2 * C20)
    rr = -4421 * Cos(2 * C20 - 2 * C21)
    SS = 1165 * B27 * Cos(2 * C19 + C20 + K63)
    tt = 8752 * Cos(2 * C18 - C20 - 2 * C21)
    uu = a + b + C + d + e + F + G + h + I + j + k + L + m + n + o + p + q + r + S + T + u + V + w + X + Y + Z + aa + bb + CC + dd + ee + ff + GG + HH + ii + jj + kk + ll + MM + nn + oo + pp + qq + rr + SS + tt
    VV = 385000.56 + uu / 1000
    MoonDISTANCE_Kms = VV 'para MILHAS, divida por 1.6093440058

    'Joga no form as distâncias para lua em KM e Milhas
    Jungli
    Jungli
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 715
    Registrado : 07/05/2010

    [Resolvido]Transfromando uma variável string em Double Empty Re: [Resolvido]Transfromando uma variável string em Double

    Mensagem  Jungli 20/7/2011, 20:45

    Opa..


    Use assim que converte direitinho.

    Dim HORA As Date
    HORA = Format([txtTime], "hh:mm")
    [SeuCampo ou variável]= HORA * 24

    Assim : 2:30 = 2,5


    .................................................................................
    "Somos o que repetidamente fazemos.
    A excelência, portanto, não é um feito,
    mas um hábito."

    Aristóteles
    avatar
    Convidado
    Convidado


    [Resolvido]Transfromando uma variável string em Double Empty Re: [Resolvido]Transfromando uma variável string em Double

    Mensagem  Convidado 20/7/2011, 21:36

    Obrigado pela dica jungli.. mas ja tenho a funçào que faz isto..

    o que gostaria é que observasse o código acima e me desse um parecer para a linha em vermelho..

    se acha que é decimal ou hora pura...sem minutos..

    Grato
    avatar
    Convidado
    Convidado


    [Resolvido]Transfromando uma variável string em Double Empty Re: [Resolvido]Transfromando uma variável string em Double

    Mensagem  Convidado 21/7/2011, 12:57

    Bem resolvi usando uma função de conversão.. Convertendo para decimal

    Grato a todos

    Conteúdo patrocinado


    [Resolvido]Transfromando uma variável string em Double Empty Re: [Resolvido]Transfromando uma variável string em Double

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 23/11/2024, 09:24