ERRO NO MSFLEXGRID

MARCELO.TREZE 09/05/2011 11:52:40
#373502
Eu não havia reparado o erro na sintax
então tente isso

db.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=CNO.mdb;Persist Security Info=False[Ô]
rs.Open [Ô]SELECT nome,numero_sigo,vias_conclusao FROM FORMANDOS where nome like[ô][Ô] & texto.Text & [Ô]%[ô][Ô], db, adOpenForwardOnly, adLockReadOnly



quanto a row =0 a zero 'ja disse que não pode ser zero pois zero é o cabecalho da coluna

o certo seria assim

MSFlexGrid1.Row = 1
MSFlexGrid1.Col = 0

tente estas modificaçoes
DELETETHIS 09/05/2011 11:59:33
#373503
Bem alterei para um e ele agora da uma linha de espaço(dá jeito porque tambem queria saber como colocar os titulos heheh) funciona tudo bem... mas ao procurar pela string novamente da o erro Invalid Row Value

    [ô]define o numero de linhas e colunas e configura o grid
MSFlexGrid1.Rows = rs.RecordCount + 1
MSFlexGrid1.Cols = rs.Fields.Count
MSFlexGrid1.Row = 1
MSFlexGrid1.Col = 0
MSFlexGrid1.RowSel = MSFlexGrid1.Rows - 1
MSFlexGrid1.ColSel = MSFlexGrid1.Cols - 1


Sera necessario zipar o projecto e enviar :s?
MARCELO.TREZE 09/05/2011 14:56:51
#373527
seria o idel, se quizer me mandar no email logo verifico e retorno
DELETETHIS 11/05/2011 10:44:58
#373646
Enviei para o email no seu perfil :) Obrigado pelo ajuda
MARCELO.TREZE 11/05/2011 17:47:03
#373706
Colega ja recebi, vou dar uma olhada e logo posto com as correções necessarias

DELETETHIS 30/05/2011 13:15:55
#375324
Aew Marcelo, desculpa ser chato mas conseguiu corrigir esse maldito erro?
XXXANGELSXXX 30/05/2011 16:04:45
#375346
velho.. vou postar como eu preencho o grid e nunca tive problemas.

  
[ô]funcao para definir o cabecalho do grid, tal como quantas colunas .. etc.
Private Sub FormataGrid()
On Error Resume Next
With TDBGrid1
.Clear
WsHeader = [Ô]|Código |Descrição|[Ô]
.FormatString = WsHeader
.ColWidth(3) = 0
.Rows = 1: .FixedRows = 1: .Cols = 4: .SelectionMode = 1
End With
End Sub

[ô]Preenche Grid Principal
Private Sub PreencherGridPrincipal()
On Error GoTo ErrorLine
Set clsCnn = New TS_AcessoBD
strSQL = [Ô][Ô] & [Ô]Select idtcontato,contdescricao,tipcontativo [Ô]
strSQL = strSQL & [Ô] from cadtipocontato [Ô]
If OptCod.Value = True And txtPesq.Text <> [Ô][Ô] Then strSQL = strSQL & [Ô] where idtcontato like [ô]%[Ô] & txtPesq.Text & [Ô]%[ô][Ô]
If OptDesc.Value = True And txtPesq.Text <> [Ô][Ô] Then strSQL = strSQL & [Ô] where contdescricao like [ô]%[Ô] & txtPesq.Text & [Ô]%[ô][Ô]
strSQL = strSQL & [Ô] order by contdescricao[Ô]
Set MyRS = clsCnn.ExecutaSQL(strSQL)
Call FormataGrid
If MyRS.RecordCount > 0 Then
With TDBGrid1
.Redraw = flexRDNone
While Not MyRS.EOF
strSQL = [Ô][Ô] & MyRS!idtcontato
strSQL = strSQL & Chr(9) & Format(MyRS!idtcontato, [Ô]00000[Ô])
strSQL = strSQL & Chr(9) & MyRS!contdescricao
strSQL = strSQL & Chr(9) & MyRS!tipcontativo
.AddItem strSQL
MyRS.MoveNext
Wend
ColorirGrid TDBGrid1, 3, [Ô]0[Ô], &HC0C0FF
.Row = 1: .Col = 0
.Redraw = flexRDBuffered
End With
Set clsCnn = Nothing
Else
TDBGrid1.Clear: TDBGrid1.Row = 0: TDBGrid1.Col = 0: Call FormataGrid
End If
Exit Sub
ErrorLine:
Call ErroSistema
End Sub




posso chamar ele ate no change do textbox, que ele vai procurando de acordo com like para mim..
DELETETHIS 31/05/2011 13:51:12
#375440
XXXANGELSXXX tentei copiar o seu codigo e tentar adapta-lo e tenho umas dúvidas:
[
Citação:

Set clsCnn = New TS_AcessoBD


Aqui era suposto mudar para Adodb.connection e
Citação:

Set MyRS = clsCnn.ExecutaSQL(strSQL)


para Adodb.recordset?

Sou noob no vb, ja estou prestes a acabar a aplicação e este é um dos meus principais erros ainda por resolver

Ja agora eu alterei as rows e fixed rows e agora simplesmente a procurar por nome(string) simplesmente nem abre o grid, mas como de custume procurar por nome funfa na boa. é este o meu codigo actualmente (desde a ultima vez muita pouca coisa modifikei no codigo, penso que so adicionei 2 validaçoes, uma no caso de o Vb dar erro e ao procurar pelo nome verificar se existe)

  Private Sub cmdPesquisar_Click()
On Error GoTo Error_Handler
If texto.Text = [Ô][Ô] Then
MsgBox ([Ô]Por favor, preencha a caixa de texto![Ô])
Exit Sub
End If

MSFlexGrid1.Clear

[ô]define os objetos para o acesso aos dados no Microsoft Access
Dim db As New ADODB.Connection
Dim rs As New ADODB.Recordset

[ô]cmdLimpar_Click
MSFlexGrid1.Refresh
MSFlexGrid1.Visible = False

If Option1.Value = True Then [ô]sigo

[ô]abre o banco de dados e define o recordset a ser usado
db.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] & App.Path & [Ô]\CNO.mdb;Persist Security Info=False[Ô]
rs.Open [Ô]SELECT numero_sigo,nome,vias_conclusao FROM FORMANDOS WHERE numero_sigo=[Ô] & texto.Text, db, adOpenStatic, adLockReadOnly

If (rs.EOF = True) And (rs.BOF = True) Then
MsgBox ([Ô]Nao ha nenhum formando com o sigo [Ô] & texto.Text)
Exit Sub
End If
rs.MoveFirst
ElseIf Option2.Value = True Then
[ô]abre o banco de dados e define o recordset a ser usado
db.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] & App.Path & [Ô]\CNO.mdb;Persist Security Info=False[Ô]
rs.Open [Ô]SELECT nome,numero_sigo,vias_conclusao FROM FORMANDOS where nome like[ô]%[Ô] & texto.Text & [Ô]%[ô][Ô], db, adOpenForwardOnly, adLockReadOnly
If (rs.EOF = True) And (rs.BOF = True) Then
MsgBox ([Ô]Nao ha ninguem com esse nome[Ô])
Exit Sub
End If
rs.MoveFirst
ElseIf Option3.Value = True Then

If (Check1.Value = 1) And (Check2.Value = 1) Then
[ô]abre o banco de dados e define o recordset a ser usado
db.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] & App.Path & [Ô]\CNO.mdb;Persist Security Info=False[Ô]
rs.Open [Ô]SELECT numero_grupo,nome,numero_sigo,vias_conclusao FROM FORMANDOS WHERE numero_grupo=[Ô] & texto.Text, db, adOpenStatic, adLockReadOnly
If (rs.EOF = True) And (rs.BOF = True) Then
MsgBox ([Ô]Nao ha nenhum formando que pertença ao grupo [Ô] & texto.Text)
Exit Sub
End If
ElseIf (Check1.Value = 0) And (Check2.Value = 0) Then
MsgBox ([Ô]Tem que assinalar uma ou ambas as caixas para fazer a pesquisa.[Ô])
Exit Sub
ElseIf (Check1.Value = 0) And (Check2.Value = 1) Then
db.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] & App.Path & [Ô]\CNO.mdb;Persist Security Info=False[Ô]
rs.Open [Ô]SELECT numero_grupo,nome,numero_sigo,vias_conclusao FROM FORMANDOS WHERE numero_grupo=[Ô] & texto.Text & [Ô] AND vias_conclusao=[ô][Ô] & lblsecundario.Caption & [Ô][ô][Ô], db, adOpenStatic, adLockReadOnly
If (rs.EOF = True) And (rs.BOF = True) Then
MsgBox ([Ô]Nao ha nenhum formando que pertença ao grupo [Ô] & texto.Text)
Exit Sub
End If
ElseIf (Check1.Value = 1) And (Check2.Value = 0) Then
db.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] & App.Path & [Ô]\CNO.mdb;Persist Security Info=False[Ô]
rs.Open [Ô]SELECT numero_grupo,nome,numero_sigo,vias_conclusao FROM FORMANDOS WHERE numero_grupo=[Ô] & texto.Text & [Ô] AND vias_conclusao=[ô][Ô] & lblbasico.Caption & [Ô][ô][Ô], db, adOpenStatic, adLockReadOnly
If (rs.EOF = True) And (rs.BOF = True) Then
MsgBox ([Ô]Nao ha nenhum formando que pertença ao grupo [Ô] & texto.Text)
Exit Sub
End If
End If
ElseIf Option4.Value = True Then
[ô]abre o banco de dados e define o recordset a ser usado
db.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] & App.Path & [Ô]\CNO.mdb;Persist Security Info=False[Ô]
rs.Open [Ô]SELECT numero_sigo,nome,vias_conclusao FROM FORMANDOS WHERE numero_identificaçao=[Ô] & texto.Text, db, adOpenStatic, adLockReadOnly
If (rs.EOF = True) And (rs.BOF = True) Then
MsgBox ([Ô]Nao ha nenhum formando com o numero de identificação: [Ô] & texto.Text)
Exit Sub
End If
End If
rs.MoveFirst
[ô]End If

[ô]define o numero de linhas e colunas e configura o grid
MSFlexGrid1.Rows = rs.RecordCount + 1
MSFlexGrid1.Cols = rs.Fields.Count [ô]- 1 -1-1=2
MSFlexGrid1.Row = 1
MSFlexGrid1.Col = 0
MSFlexGrid1.RowSel = MSFlexGrid1.Rows - 1
MSFlexGrid1.ColSel = MSFlexGrid1.Cols - 1

[ô]estamos usando a propriedade Clip e o método GetString para selecionar uma região do grid
MSFlexGrid1.Clip = rs.GetString(adClipString, -1, Chr(9), Chr(13), vbNullString)
MSFlexGrid1.Row = 1
MSFlexGrid1.Visible = True

[ô]libera os objetos
rs.Close
db.Close
Set rs = Nothing
Set db = Nothing

Error_Handler:
Select Case Err.Number
Case -2147217904
MsgBox ([Ô]Apenas digite letras quando quer procurar pelo nome[Ô])
[ô]adicionar + erros caso apareçam
End Select

End Sub
Página 2 de 2 [18 registro(s)]
Tópico encerrado , respostas não são mais permitidas