ERRO AO CARREGAR GRID
BOA TARDE COLEGAS, DEPOIS DE FAZER UM ALTERAÇÃO NO MEU INSET INTO MAIS ACEITA VALORES NULOS NOS CAMPOS DATA/HORA, MAIS AGORA MEU GRID NÃO CARREGAR SE EXISTIR CAMPOS NULOS.
FUNÇÃO PARA CARREGAR O GRID
[th]
[th]
Cabecalho | [/th]
Sub ListarHistorico(Codigo As Long) [ô]---------------------------------------------- [ô]Popular Grid com os historico de manutenções [ô]---------------------------------------------- Dim rs As ADODB.Recordset, i As Integer Set rs = New ADODB.Recordset rs.CursorLocation = adUseClient rs.Open [Ô]SELECT Lancamento, Especificacao, Saida, Conclusao [Ô] & _ [Ô]FROM tblacessorio [Ô] & _ [Ô]WHERE codAcess=[Ô] & Codigo, con, adOpenForwardOnly, adLockReadOnly If rs.EOF Then Grid.Clear Call FormatarGrid Else Call FormatarGrid Grid.Rows = rs.RecordCount + 1 For i = 1 To rs.RecordCount Grid.TextMatrix(i, 0) = rs.Fields([Ô]Lancamento[Ô]) Grid.TextMatrix(i, 1) = rs.Fields([Ô]Especificacao[Ô]) Grid.TextMatrix(i, 2) = rs.Fields([Ô]Saida[Ô]) Grid.TextMatrix(i, 3) = rs.Fields([Ô]Conclusao[Ô]) rs.MoveNext Next i End If rs.Close Set rs = Nothing End Sub |
Cabecalho | [/th]
Sub FormatarGrid() [ô]---------------------------- [ô]Formatar Grid dos Acessórios [ô]---------------------------- With Grid [ô]Nome .TextMatrix(0, 0) = [Ô]Lançamento[Ô] .TextMatrix(0, 1) = [Ô]Especificação do Defeito[Ô] .TextMatrix(0, 2) = [Ô]Saida[Ô] .TextMatrix(0, 3) = [Ô]Conclusão[Ô] [ô]Espaçamento .ColWidth(0) = 1200 .ColWidth(1) = 3650 .ColWidth(2) = 1170 .ColWidth(3) = 1458 .Rows = 2 End With End Sub |
mostra como vc carrega estes dados, poste o código, mas geralmente um & [Ô][Ô] resolve
exemplo
msflexgrid1.TextMatric(x,0) = RS!data [txt-color=#e80000]& [Ô][Ô][/txt-color]
exemplo
msflexgrid1.TextMatric(x,0) = RS!data [txt-color=#e80000]& [Ô][Ô][/txt-color]
como eu disse
faça desta forma:
Grid.TextMatrix(i, 0) = rs.Fields([Ô]Lancamento[Ô]) & [Ô][Ô]
Grid.TextMatrix(i, 1) = rs.Fields([Ô]Especificacao[Ô]) & [Ô][Ô]
Grid.TextMatrix(i, 2) = rs.Fields([Ô]Saida[Ô]) & [Ô][Ô]
Grid.TextMatrix(i, 3) = rs.Fields([Ô]Conclusao[Ô]) & [Ô][Ô]
faça desta forma:
Grid.TextMatrix(i, 0) = rs.Fields([Ô]Lancamento[Ô]) & [Ô][Ô]
Grid.TextMatrix(i, 1) = rs.Fields([Ô]Especificacao[Ô]) & [Ô][Ô]
Grid.TextMatrix(i, 2) = rs.Fields([Ô]Saida[Ô]) & [Ô][Ô]
Grid.TextMatrix(i, 3) = rs.Fields([Ô]Conclusao[Ô]) & [Ô][Ô]
GRANDE MARCELO AGORA SIM, MAIS MIM DEPAREI COM UM OUTRO ERRO, QUANDO PESSO PARA ALTERAR DA UM ERRO TIPO DE DADOS IMCOPATÃVEL NA EXPRESSÃO DE CRITéRIO. CÓDIGO QUE USO PARA ALTERAR
Private Sub cmdAlDep_Click()
If AltDep = True Then
[ô]------------------------------
[ô]Altera equipamento selecionado
[ô]------------------------------
On Error GoTo erro
Dim Tipo As String
With Grid
Tipo = .TextMatrix(.RowSel, 1)
If Tipo <> [Ô][Ô] Then
If MsgBox([Ô]Confirma a alteração do dependente?[Ô], vbQuestion + vbYesNo + vbDefaultButton2) = vbNo Then Exit Sub
con.BeginTrans
con.Execute [Ô]UPDATE tblacessorio [Ô] & _
[Ô]SET Lancamento=[ô][Ô] & Format(atxtLançamento, [Ô]mm/dd/yyyy[Ô]) & [Ô][ô], Especificacao=[ô][Ô] & cboEspecificaçao & [Ô][ô], Saida=[ô][Ô] & Format(atxtSaida, [Ô]mm/dd/yyyy[Ô]) & [Ô][ô], Conclusao=[ô][Ô] & cboConclusao & [Ô][ô] [Ô] & _
[Ô]WHERE Especificacao=[ô][Ô] & Tipo & [Ô][ô];[Ô]
con.CommitTrans
Call LimparDependente
Call ListarDependente(CLng(atxtCodigo))
MsgBox [Ô]Dados alterado com sucesso![Ô]
AltDep = False
End If
End With
Else
MsgBox [Ô]Para alterar os dados, dê um duplo-clique sobre o registro e faça as alterações.[Ô], vbInformation
End If
Exit Sub
erro:
con.RollbackTrans
MsgBox [Ô]Ocorreu um erro ao alterar o registro[Ô] & vbCrLf & Err.Description, vbExclamation, [Ô]Erro[Ô]
End Sub
ABRAÇOS
Private Sub cmdAlDep_Click()
If AltDep = True Then
[ô]------------------------------
[ô]Altera equipamento selecionado
[ô]------------------------------
On Error GoTo erro
Dim Tipo As String
With Grid
Tipo = .TextMatrix(.RowSel, 1)
If Tipo <> [Ô][Ô] Then
If MsgBox([Ô]Confirma a alteração do dependente?[Ô], vbQuestion + vbYesNo + vbDefaultButton2) = vbNo Then Exit Sub
con.BeginTrans
con.Execute [Ô]UPDATE tblacessorio [Ô] & _
[Ô]SET Lancamento=[ô][Ô] & Format(atxtLançamento, [Ô]mm/dd/yyyy[Ô]) & [Ô][ô], Especificacao=[ô][Ô] & cboEspecificaçao & [Ô][ô], Saida=[ô][Ô] & Format(atxtSaida, [Ô]mm/dd/yyyy[Ô]) & [Ô][ô], Conclusao=[ô][Ô] & cboConclusao & [Ô][ô] [Ô] & _
[Ô]WHERE Especificacao=[ô][Ô] & Tipo & [Ô][ô];[Ô]
con.CommitTrans
Call LimparDependente
Call ListarDependente(CLng(atxtCodigo))
MsgBox [Ô]Dados alterado com sucesso![Ô]
AltDep = False
End If
End With
Else
MsgBox [Ô]Para alterar os dados, dê um duplo-clique sobre o registro e faça as alterações.[Ô], vbInformation
End If
Exit Sub
erro:
con.RollbackTrans
MsgBox [Ô]Ocorreu um erro ao alterar o registro[Ô] & vbCrLf & Err.Description, vbExclamation, [Ô]Erro[Ô]
End Sub
ABRAÇOS
ai agente volta lá em um outro tópico seu para cada tipo de dado uma regra veja
campos do tipo data/hora usa-se o (#) assim #mm/dd/yyyy#
do tipo texto usa-se a aspas simples([ô]) assim [ô]JPAULO[ô]
do tipo numérico usa-se sem aspas id = 1
veja como ficará sua query
siga a regrinha acima e veja se funciona.
campos do tipo data/hora usa-se o (#) assim #mm/dd/yyyy#
do tipo texto usa-se a aspas simples([ô]) assim [ô]JPAULO[ô]
do tipo numérico usa-se sem aspas id = 1
veja como ficará sua query
con.Execute [Ô]UPDATE tblacessorio [Ô] & _
[Ô]SET Lancamento=[ô][Ô] & IIf(atxtLançamento.Text = [Ô][Ô], [Ô]NULL[Ô], [Ô]#[Ô] & Format(atxtLançamento, [Ô]mm/dd/yyyy[Ô]) & [Ô]#[Ô]) & [Ô], Especificacao=[ô][Ô] & cboEspecificaçao & [Ô][ô], Saida=[Ô] & IIf(aTxtSaida.Text = [Ô][Ô], [Ô]NULL[Ô], [Ô]#[Ô] & Format(atxtSaida, [Ô]mm/dd/yyyy[Ô]) & [Ô]#[Ô]) & [Ô], Conclusao=[ô][Ô] & cboConclusao & [Ô][ô] [Ô] & _
[Ô]WHERE Especificacao=[ô][Ô] & Tipo & [Ô][ô];[Ô]
siga a regrinha acima e veja se funciona.
MARCELO FIZ A ALTERAÇÃO CONFORME SEU EXEMPLO, MAIS MOSTRA O SEGUINTE ERRO.
Tópico encerrado , respostas não são mais permitidas