ERRO NO MSFLEXGRID
Eu não havia reparado o erro na sintax
então tente isso
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
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
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
Sera necessario zipar o projecto e enviar :s?
[ô]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?
seria o idel, se quizer me mandar no email logo verifico e retorno
Enviei para o email no seu perfil :) Obrigado pelo ajuda
Colega ja recebi, vou dar uma olhada e logo posto com as correções necessarias
Aew Marcelo, desculpa ser chato mas conseguiu corrigir esse maldito erro?
velho.. vou postar como eu preencho o grid e nunca tive problemas.
posso chamar ele ate no change do textbox, que ele vai procurando de acordo com like para mim..
[ô]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..
XXXANGELSXXX tentei copiar o seu codigo e tentar adapta-lo e tenho umas dúvidas:
[
Aqui era suposto mudar para Adodb.connection e
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)
[
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
Tópico encerrado , respostas não são mais permitidas