GRAVANDO DADOS NA ARRAY
Bom pessoal preciso de ajuda para começar pois nem sei como, seguinte:
Tenho um TextNome e TextCod no Form, preciso criar uma variavel array (não sei se é possivel) para gravar os dados desses controles para posteriomente gravar no Banco. Acontece que quando vou criar um novo documento o mesmo pode ter ate 100 items e devo gravar na variavel um a um, ou seja, o primeiro Nome e Codigo na primeira variavel e ssim por diante. Como posso fazer isso?
Tenho um TextNome e TextCod no Form, preciso criar uma variavel array (não sei se é possivel) para gravar os dados desses controles para posteriomente gravar no Banco. Acontece que quando vou criar um novo documento o mesmo pode ter ate 100 items e devo gravar na variavel um a um, ou seja, o primeiro Nome e Codigo na primeira variavel e ssim por diante. Como posso fazer isso?
Amigo IRENKO
Criei um exemplo aqui, mas ao invés de trazer os dados de textbox eu leio de um txt.
Veja se essa situação ja atende sua necessidade.
um abraço.
Criei um exemplo aqui, mas ao invés de trazer os dados de textbox eu leio de um txt.
Veja se essa situação ja atende sua necessidade.
Private Sub Command1_Click()
Dim Arq As Integer
Dim Array_Arquivo As New Collection
Dim i As Integer
Dim Linha As String
Arq = FreeFile
Open "C:\Documents and Settingsenatol\Desktop\NEW.TXT" For Input As #Arq
i = 1
Do While Not EOF(Arq)
Line Input #Arq, Linha
' Aqui vc adiciona um item
Array_Arquivo.Add Linha, CStr(i)
'Aqui vc le um item
'MsgBox Array_Arquivo.Item(i)
i = i + 1
Loop
Close #Arq
End Sub
um abraço.
Renato, sinceramente não estou sabendo adaptar para o que quero. A teoria é o seguinte: Onde eu coloco o TextBox para a rotina buscar direto nele e gravar no array?
ok amigo.
seria aqui:
--> Array_Arquivo.Add Textbox.text, CStr(i)
o importante é vc compreender o conceito deste array(coleção).
espero que tenha ajudado
seria aqui:
--> Array_Arquivo.Add Textbox.text, CStr(i)
o importante é vc compreender o conceito deste array(coleção).
espero que tenha ajudado
Private Type Dados
Nome as String
Codigo as String
End Type
Aàpra usar é só fazer
Dim tArray(1 to 10) as Dados
tArray(1).Codigo = 10
tArray(1).Nome = "Thiago"
tArray(2).Codigo = 15
tArray(2).Nome = "Sei lá o que"
....
e por aàvai.
Bem Simples, melhor que arquivo
concordo com o lion.
porém lion, como ficaria se tivessemos um numero indeterminado de arrays ??
e o lance do arquivo que eu utilizei foi apenas para trazer dados de algum local.
um abraço.
porém lion, como ficaria se tivessemos um numero indeterminado de arrays ??
e o lance do arquivo que eu utilizei foi apenas para trazer dados de algum local.
um abraço.
Pessoal, agradeço pelas dicas mas não estou sabendo manipular a tal da array. Vou tentar ser mais claro na minha teoria.
No form tenho um TextNome e um botão (Gravar), quando digitar Pedro e mandar gravar, gravo na variavel(array) e limpo o TextNome. Digito outro, João e gravo, assim por diante, depois mando para o banco. Mas todos que digitar tem estar quardados. Como fazer isso? Alguem pode montar um exemplo simples para que eu possa começar?
No form tenho um TextNome e um botão (Gravar), quando digitar Pedro e mandar gravar, gravo na variavel(array) e limpo o TextNome. Digito outro, João e gravo, assim por diante, depois mando para o banco. Mas todos que digitar tem estar quardados. Como fazer isso? Alguem pode montar um exemplo simples para que eu possa começar?
Vc pode fazer assim:
Declara uma variável global tipo integer, por exemplo nAux
No load do seu form...
nAux = 1
No Botao gravar
Assim, toda vez que clicar em Gravar vai redimensionar o array aCampos preservando o que já foi incluÃÂÂdo nele. Depois para jogar no banco vc vai saber, pois sua dúvida era como manipular um array... rsrsrsrs
Declara uma variável global tipo integer, por exemplo nAux
No load do seu form...
nAux = 1
No Botao gravar
Redim Preserve aCampos(nAux,1)
aCampos(nAux,0) = "Nome": aCampos(nAux,1) = "'" & txtNome.Text & "'"
nAux = nAux + 1
Assim, toda vez que clicar em Gravar vai redimensionar o array aCampos preservando o que já foi incluÃÂÂdo nele. Depois para jogar no banco vc vai saber, pois sua dúvida era como manipular um array... rsrsrsrs
Amigão, veja se agora consegue entender melhor.
Dim i As Integer
Dim x As Integer
Dim i As Integer
Dim x As Integer
Private Sub cmdApresentar_Arrays_Click()
'Apresentamos todos items da coleção
For x = 0 To i - 1
MsgBox Array_Nome.Item(CStr(x))
Next
End Sub
Private Sub cmdGravar_Click()
'Adicionamos um item na coleção
Array_Nome.Add txtNome.Text, CStr(i)
'Soma 1 na variavel para proximo item
i = i + 1
'limpamos textbox nome
txtNome.Text = ""
'voltamos com o foco para o text nome
txtNome.SetFocus
End Sub
Private Sub Form_Load()
' Iniciamos variavel de array com 0
i = 0
End Sub
Renato, valeu amigão!! Fiz conforme abaixo e esta dando certo, como são varios items para cadastro a maneira abaixo esta correta? Não vo encerrar agora pois tenho outras dÃÂÂvidas referente a esse procedimento. OK?
Dim i As Integer
Dim x As Integer
Dim Array_Nome As New Collection
Dim Array_Cod As New Collection
Dim i As Integer
Dim x As Integer
Dim Array_Nome As New Collection
Dim Array_Cod As New Collection
Private Sub CmdApresentar_Click()
'Apresentamos todos items da coleção
For x = 0 To i - 1
MsgBox Array_Nome.Item(CStr(x)) & " " & Array_Cod.Item(CStr(x))
'MsgBox
Next
End Sub
Private Sub CmdGravar_Click()
'Adicionamos um item na coleção
Array_Nome.Add TxtNome.Text, CStr(i)
Array_Cod.Add TxtCod.Text, CStr(i)
'Soma 1 na variavel para proximo item
i = i + 1
'limpamos textbox nome
TxtNome.Text = ""
TxtCod.Text = ""
'voltamos com o foco para o text nome
TxtNome.SetFocus
End Sub
Private Sub UserForm_Initialize()
' Iniciamos variavel de array com 0
i = 0
TxtNome.SetFocus
End Sub
Porque você não usa ao invés de Array um Recordset Desconectado fica bem mais simples e mais prático exemplo:
Declare a Variavel Rs na seção general do Form ou como variavel Publica, dependendo da sua necessidade
Ao abrir o Form você chama a Rotina CriarRecordset
Para incluir Registros na variavel Recordset é simples
With Rs
.AddNew
!Numero = CampoNumero
!Nome = CampoNome
.Update
End With
Para Passar para seu banco de Dados basta fazer um Loop pelo Recordset passando valor por valor para o seu banco.
Declare a Variavel Rs na seção general do Form ou como variavel Publica, dependendo da sua necessidade
Private Sub CriarRecordset()
Set Rs = New Adodb.Recordset
With Rs
.Fields.Append "Codigo", adDouble
.Fields.Append "Nome", adVarChar, 50
.Open
End With
End Sub
Ao abrir o Form você chama a Rotina CriarRecordset
Para incluir Registros na variavel Recordset é simples
With Rs
.AddNew
!Numero = CampoNumero
!Nome = CampoNome
.Update
End With
Para Passar para seu banco de Dados basta fazer um Loop pelo Recordset passando valor por valor para o seu banco.
Tópico encerrado , respostas não são mais permitidas