Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Lançamentos automaticos (inserir registros)


Luis Castro

Pergunta

Caros amigos

cá estou eu com mais uma questão.

Tenho uma base de dados onde lanço recibos que são entregues aos vendedores

Quando eles levam recibos sem serem sequenciais, tenho de os lançar um a um, mas tem muitas vezes que eles levam livros de recibos inteiros , ou seja por exemplo levam do recibo 1 ao 100.

Não queria estar a lançar isto um a um, precisava de algo onde pusesse DATA SAIDA - VENDEDOR - Nº RECIBO de 1 a 100, e o computador criasse logo os recibos na base de dados, ou seja criaria algo assim:

DATA SAIDA - VENDEDOR - RECIBO

02.08.2010 - 33 - 1

02.08.2010 - 33 - 2

02.08.2010 - 33 - 3

02.08.2010 - 33 - 4... 100

Será que poderei fazer isto.

Obrigado a todos

1abraço

Editado por Luis Castro
Link para o comentário
Compartilhar em outros sites

22 respostass a esta questão

Posts Recomendados

  • 0

Tipo fiz esse código rapidamente, mais vocÊ vai ter que adapta-lo

dim i as integer
dim strSql As String


for i 1 to 100
     Let strSql = "insert into suaTabela (data,vendedor,nrRecibo) values(" & suaData & ",'" & codVendedor & "','" & i & "')"
     DoCmd.RunSQL strSql
next i

Você pode substituir suaData pelo nome da caixa de texto que contem a data, codVendedor pelo objeto que tem o código e o i é número do recibo, daí você incrementa da forma que for mais conveniente para você.

Link para o comentário
Compartilhar em outros sites

  • 0

Amigo suas tabelas não estão normalisadas, por isso criei uma que não use caracteres especiais ou espaços no nome dos campos, nomeia de tstMALJ e nela tem os 3 campos alvos para inserção, copiei seu formulário SAIDA RECIBOS para SaidaRecibosMALJ e fiz algumas alterações para que eu pudesse fazer o exemplo para você.

Bom agora acredito que você normalisando seu banco de dados, basta você adequar o que já fiz para o que você criar.

No arquivo zipado que estou disponibilizando tem a imagem do teste que fiz para que vocÊ possa visualizar o resultado.

Aguardo seu retorno para colocar resolvido no tópico.

tstReciboMrMALJ.zip

Link para o comentário
Compartilhar em outros sites

  • 0

Amigo MrMALJ

Com este novo link, já consegui descarregar.

Na imagem do teste que envias, na data para criação do recibo metes 04//08/2010 e na tabela aparece com a data de 30/12/1899. Podes dizer-me porquê?

E estive a fazer testes com varios numeros de recibos a criar e se puseres 33333 ou 41444 no recibo inicial ou outros, dá erro "Run time error '6' Overflow"

Será que podes ver porque acontece isto.

Obrigado por tudo

1abraço

Editado por Luis Castro
Link para o comentário
Compartilhar em outros sites

  • 0

Como disse o problema era simples, eu esqueci de colocar o # (cerquilha ou jogo da velha) na data, então basta inserir ela a linha do include ficará assim:

Let strSql = "insert into tstMALJ (recData,recVendedor,recNumero) values(#" & Me.txtData & "#,'" & Me.txtVend & "','" & i & "')"

Pronto isso resolve a questão da data, posso colocar resolvido então?

Link para o comentário
Compartilhar em outros sites

  • 0

Amigo mudei o código do botão, cole esse no lugar do está lá, realmente estava havendo um estouro, devido ao tipo de váriavel e o tipo de loop que utilizei, com essa nova estrutura testei funcionou perfeitamente,

Dim inicio, final As Variant
Dim strSql As String

If Not IsNull(Me.txtVend) And Not IsNull(Me.txtData) And Not IsNull(Me.txtIni) And Not IsNull(Me.txtQtd) Then
    DoCmd.SetWarnings False
    inicio = Me.txtIni
    final = Me.txtIni + Me.txtQtd
    
    While inicio <= final
        Let strSql = "insert into tstMALJ (recData,recVendedor,recNumero) values(#" & Me.txtData & "#,'" & Me.txtVend & "','" & inicio & "')"
        DoCmd.RunSQL strSql
        inicio = inicio + 1
    Wend
    
    DoCmd.SetWarnings True
    MsgBox "Geração automática Concluída!", vbOKOnly + vbInformation, " Mr. MALJ"
Else
    MsgBox "Para geração automática de recibos é necessário informar todos os Requisitos!", vbOKOnly + vbInformation, " Mr. MALJ"
End If

Posso colocar resolvido no seu tópico?!!!!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...