• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

RitxAngel

Ajuda em grid

1 mensagem neste tópico

Boas meus caros amigos, é a primeira vez que posto, mas ja conheica o vosso forum a uns tempos, embora nunca ca tivesse vindo

Passa-se o seguinte:

Eu estou a trabalhar com uma grid, e tenho que ir buscar uns dados a duas tabelas. Até aqui nada de mais, o que se passa, e que eu tenho que introduzir dados e guardar, nada demais tambem, o problema está no guardar, ele faz tudo, apenas nao acrescenta a base de dados os dados que introduzi.

Vou deixar aqui o código para voces verem e darem possiveis ajudas, se poderem

Código do botão guardar

Private Sub cmdgravar_Click()
Dim rsrota As ADODB.Recordset

Dim SQL As String

    gridrs.AbsolutePosition = 1
    gridrota.Action = 15
    gridrs.Update
    
    
    SQL = "select calfecha, calref, cli, REX, Data_Entrada, Hora_Real_Entrada, Data_Saida, Hora_Real_Saida, Inicio_Carga, Fim_Carga, Entrega_Processo, Cais, ArmazemExp, CHEP, EURO, LPR, Outras, Volumes, Rota from Cab "
    Set rsrota = getRs(SQL)
    While gridrs.EOF
        rsrota.Filter = ""
        rsrota.Filter = "calref = " & p(gridrs("Referencia")) & " and cli = " & gridrs("cliente")
        While rsrota.EOF
        rsrota("REX") = gridrs("REX")
        rsrota("Data_Entrada") = gridrs("Data_Entrada")
        rsrota("Hora_Real_Entrada") = gridrs("Hora_Entr")
        rsrota("Data_Saida") = gridrs("Data_Saida")
        rsrota("Hora_Real_Saida") = gridrs("Hora_Sai")
        rsrota("Inicio_Carga") = gridrs("Ini_Carga")
        rsrota("Fim_Carga") = gridrs("Fim_Carga")
        rsrota("Entrega_Processo") = gridrs("Entrega_Proc")
        rsrota("Cais") = gridrs("Cais")
        rsrota("ArmazemExp") = gridrs("Armazem")
        rsrota("CHEP") = gridrs("CHEP")
        rsrota("EURO") = gridrs("EURO")
        rsrota("LPR") = gridrs("LPR")
        rsrota("Outras") = gridrs("Outras")
        rsrota("Volumes") = gridrs("Volumes")
        rsrota.Update
        Wend
        gridrs.MoveNext
    Wend
    
    
    SQL = "select calfecha, calref, cli, REX, Data_Entrada, Hora_Real_Entrada, Data_Saida, Hora_Real_Saida, Inicio_Carga, Fim_Carga, Entrega_Processo, Cais, ArmazemExp, CHEP, EURO, LPR, Outras, Volumes from CabHist "
    Set rsrota = getRs(SQL)
    While gridrs.EOF
        rsrota.Filter = ""
        rsrota.Filter = "calref = " & p(gridrs("Referencia")) & " and cli = " & gridrs("cliente")
        While rsrota.EOF
        rsrota("REX") = gridrs("REX")
        rsrota("Data_Entrada") = gridrs("Data_Entrada")
        rsrota("Hora_Real_Entrada") = gridrs("Hora_Entr")
        rsrota("Data_Saida") = gridrs("Data_Saida")
        rsrota("Hora_Real_Saida") = gridrs("Hora_Sai")
        rsrota("Inicio_Carga") = gridrs("Ini_Carga")
        rsrota("Fim_Carga") = gridrs("Fim_Carga")
        rsrota("Entrega_Processo") = gridrs("Entrega_Proc")
        rsrota("Cais") = gridrs("Cais")
        rsrota("ArmazemExp") = gridrs("Armazem")
        rsrota("CHEP") = gridrs("CHEP")
        rsrota("EURO") = gridrs("EURO")
        rsrota("LPR") = gridrs("LPR")
        rsrota("Outras") = gridrs("Outras")
        rsrota("Volumes") = gridrs("Volumes")
        rsrota.Update
        Wend
        gridrs.MoveNext
    Wend
    gridrota.MaxRows = gridrs.RecordCount
    Set gridrota.DataSource = gridrs
    
    End Sub

Código de ir buscar os dados já existentes na base de dados e mostrar na grid:
Private Sub Form_Load()
Dim SQL As String



Set gridrs = New ADODB.Recordset
gridrs.LockType = adLockPessimistic
gridrs.CursorLocation = adUseClient
gridrs.CursorType = adOpenDynamic

gridrs.Fields.Append "CalFecha", adVarChar, 50, adFldMayBeNull
gridrs.Fields.Append "Referencia", adVarChar, 50
gridrs.Fields.Append "Cliente", adVarChar, 50
gridrs.Fields.Append "Rota", adVarChar, 50, adFldMayBeNull
gridrs.Fields.Append "REX", adVarChar, 50, adFldMayBeNull
gridrs.Fields.Append "Data_Entrada", adVarChar, 10, adFldMayBeNull
gridrs.Fields.Append "Hora_Entr", adVarChar, 10, adFldMayBeNull
gridrs.Fields.Append "Data_Saida", adVarChar, 10, adFldMayBeNull
gridrs.Fields.Append "Hora_Sai", adVarChar, 10, adFldMayBeNull
gridrs.Fields.Append "Ini_Carga", adVarChar, 10, adFldMayBeNull
gridrs.Fields.Append "Fim_Carga", adVarChar, 10, adFldMayBeNull
gridrs.Fields.Append "Entrega_Proc", adVarChar, 40, adFldMayBeNull
gridrs.Fields.Append "Cais", adVarChar, 20, adFldMayBeNull
gridrs.Fields.Append "Armazem", adVarChar, 20, adFldMayBeNull
gridrs.Fields.Append "CHEP", adVarChar, 50, adFldMayBeNull
gridrs.Fields.Append "EURO", adVarChar, 50, adFldMayBeNull
gridrs.Fields.Append "LPR", adVarChar, 50, adFldMayBeNull
gridrs.Fields.Append "Outras", adVarChar, 50, adFldMayBeNull
gridrs.Fields.Append "Volumes", adVarChar, 50, adFldMayBeNull
gridrs.Fields.Append "RefHist", adVarChar, 50
gridrs.Fields.Append "ClienteHist", adVarChar, 50

gridrs.Open
gridrota.col = 1
gridrota.ColWidth(1) = 9
gridrota.DataField = "Referencia"
gridrota.col = 2
gridrota.ColWidth(2) = 5
gridrota.DataField = "Cliente"
gridrota.col = 3
gridrota.ColWidth(3) = 8
gridrota.DataField = "CALFECHA"
gridrota.col = 4
gridrota.ColWidth(4) = 4
gridrota.DataField = "Rota"
gridrota.col = 5
gridrota.ColWidth(5) = 8
gridrota.DataField = "REX"
gridrota.col = 6
gridrota.ColWidth(6) = 8
gridrota.DataField = "Data_Entrada"
gridrota.col = 7
gridrota.ColWidth(7) = 7
gridrota.DataField = "Hora_Entr"
gridrota.col = 8
gridrota.ColWidth(8) = 8
gridrota.DataField = "Data_Saida"
gridrota.col = 9
gridrota.ColWidth(9) = 7
gridrota.DataField = "Hora_Sai"
gridrota.col = 10
gridrota.ColWidth(10) = 7
gridrota.DataField = "Ini_Carga"
gridrota.col = 11
gridrota.ColWidth(11) = 7
gridrota.DataField = "Fim_Carga"
gridrota.col = 12
gridrota.ColWidth(12) = 11
gridrota.DataField = "Entrega_Proc"
gridrota.col = 13
gridrota.ColWidth(13) = 5
gridrota.DataField = "Cais"
gridrota.col = 14
gridrota.ColWidth(14) = 6
gridrota.DataField = "Armazem"
gridrota.col = 15
gridrota.ColWidth(15) = 4
gridrota.DataField = "CHEP"
gridrota.col = 16
gridrota.ColWidth(16) = 5
gridrota.DataField = "EURO"
gridrota.col = 17
gridrota.ColWidth(17) = 4
gridrota.DataField = "LPR"
gridrota.col = 18
gridrota.ColWidth(18) = 5
gridrota.DataField = "Outras"
gridrota.col = 19
gridrota.ColWidth(19) = 6
gridrota.DataField = "Volumes"

    SQL = "select calfecha, calref, cli, REX, Data_Entrada, Hora_Real_Entrada, Data_Saida, Hora_Real_Saida, Inicio_Carga, Fim_Carga, Entrega_Processo, Cais, ArmazemExp, CHEP, EURO, LPR, Outras, Volumes, Rota  from Cab "
    Set rsrota = getRs(SQL)
    
    
    gridrota.MaxRows = gridrs.RecordCount
    While Not rsrota.EOF
    gridrs.AddNew
    gridrs!calfecha = rsrota!calfecha
    gridrs!Referencia = rsrota!calref
    gridrs!Cliente = rsrota!cli
    gridrs!Rota = rsrota!Rota
    gridrs!REX = rsrota!REX
    gridrs!Data_Entrada = rsrota!Data_Entrada
    If rsrota!Hora_Real_Entrada <> "" Then gridrs!Hora_Entr = Format(rsrota!Hora_Real_Entrada, "hh:mm")
    gridrs!Data_Saida = rsrota!Data_Saida
    If rsrota!Hora_Real_Saida <> "" Then gridrs!HoraSai = Format(rsrota!Hora_Real_Saida, "hh:mm")
    If rsrota!Inicio_Carga <> "" Then gridrs!Ini_Carga = Format(rsrota!Inicio_Carga, "hh:mm")
    If rsrota!Fim_Carga <> "" Then gridrs!Fim_Carga = Format(rsrota!Fim_Carga, "hh:mm")
    gridrs!Entrega_Proc = rsrota!Entrega_Processo
    gridrs!Cais = rsrota!Cais
    gridrs!Armazem = rsrota!ArmazemExp
    gridrs!CHEP = rsrota!CHEP
    gridrs!EURO = rsrota!EURO
    gridrs!LPR = rsrota!LPR
    gridrs!Outras = rsrota!Outras
    gridrs!Volumes = rsrota!Volumes
    rsrota.MoveNext
    Wend
    
     
    SQL = "select calfecha, calref, cli, REX, Data_Entrada, Hora_Real_Entrada, Data_Saida, Hora_Real_Saida, Inicio_Carga, Fim_Carga, Entrega_Processo, Cais, ArmazemExp, CHEP, EURO, LPR, Outras, Volumes  from CabHist "
    Set rsrota = getRs(SQL)
    gridrota.MaxRows = gridrs.RecordCount
    While Not rsrota.EOF
    gridrs.AddNew
    gridrs!calfecha = rsrota!calfecha
    gridrs!Referencia = rsrota!calref
    gridrs!Cliente = rsrota!cli
    gridrs!REX = rsrota!REX
    gridrs!Data_Entrada = rsrota!Data_Entrada
    If rsrota!Hora_Real_Entrada <> "" Then gridrs!Hora_Entr = Format(rsrota!Hora_Real_Entrada, "hh:mm")
    gridrs!Data_Saida = rsrota!Data_Saida
    If rsrota!Hora_Real_Saida <> "" Then gridrs!Hora_Sai = Format(rsrota!Hora_Real_Saida, "hh:mm")
    If rsrota!Inicio_Carga <> "" Then gridrs!Ini_Carga = Format(rsrota!Inicio_Carga, "hh:mm")
    If rsrota!Fim_Carga <> "" Then gridrs!Fim_Carga = Format(rsrota!Fim_Carga, "hh:mm")
    gridrs!Entrega_Proc = rsrota!Entrega_Processo
    gridrs!Cais = rsrota!Cais
    gridrs!Armazem = rsrota!ArmazemExp
    gridrs!CHEP = rsrota!CHEP
    gridrs!EURO = rsrota!EURO
    gridrs!LPR = rsrota!LPR
    gridrs!Outras = rsrota!Outras
    gridrs!Volumes = rsrota!Volumes
    rsrota.MoveNext
    Wend
    
    Set gridrota.DataSource = gridrs

     
End Sub

Eu estou a usar dois SQL na parte de ir buscar os codigos porque sao duas tabelas diferentes com exatamente os mesmo campos.

Alguem me pode dar uma ajuda?

Obrigada desde já e peço desculpa pela massada causada :smoke:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora