tou com um problema na importaçao de dados de uma folha excel para base de dados access. Tenho um scrip que me faz isso direitinho mas aceita dados duplicados, ou seja, eu gostava de saber se alguém sabe como eu posso usar o codigo abaixo de maneira que ao importar os dados me dê uma mensagem de erro se já existirem os dados da folha excel na bd access.
Question
jtorres
antes de mais boa tarde a todos.
tou com um problema na importaçao de dados de uma folha excel para base de dados access. Tenho um scrip que me faz isso direitinho mas aceita dados duplicados, ou seja, eu gostava de saber se alguém sabe como eu posso usar o codigo abaixo de maneira que ao importar os dados me dê uma mensagem de erro se já existirem os dados da folha excel na bd access.
o codigo é o seguinte:
<!--#include file="includetop.asp"-->
<%
set Cmd=server.CreateObject("ADODB.COMMAND")
Cmd.ActiveConnection="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("bdgaji/regAtend.mdb") & ""%>
<%
Dim Conn, RS
Dim Campos, contador
'// CONECTAMOS COM O BANCO DE DADOS
Set Conn = CreateObject("ADODB.Connection")
With Conn
.Provider = "Microsoft.Jet.OLEDB.4.0"
'// Nesta linha perca que a conexão indica que utilizaremos um arquivo do Excel
.ConnectionString = "Data Source="& Server.MapPath("importaexcel/processos.xls") &";Extended Properties=Excel 8.0;"
.Open
End With
'// AO CRIAR O RECORDSET, O SELECT INDICA O NOME DA FOLHA DO ARQUIVO
Set RS = Conn.Execute("SELECT * FROM [Folha1$] ")
'// CONTAMOS QUANTAS LINHAS EXISTEM NO ARQUIVO
Campos = RS.Fields.Count
%>
<table align="center">
<tr>
<td>
<span class="style1" style="font-size: 18px; color: #FF0000; font-family: Algerian; font-weight:700"><u>Processos Importados</u></span></td>
</tr>
</table>
<br><br>
<%
'// INICIAMOS O LOOP%>
<table border=""1"" align="center">
<%
Do While RS.EOF = False
'// Aqui informamos os nomes das colunas para então lista os resultados
%>
<td align="center"><font size=1 face=verdana><b> RTNO </td>
<td align="center"><font size=1 face=verdana><b> Nome </td>
<td align="center"><font size=1 face=verdana><b> Nacionalidade </td>
<td align="center"><font size=1 face=verdana><b> Atendimento </td>
</tr>
<tr>
<td width="150" height="75" align="center"> <%=RS("RTNO")%> </td>
<td width="280" height="75"> <%=RS("Nome")%> </td>
<td width="50" height="75" align="center"> <%=RS("Nacionalidade")%> </td>
<td width="135" height="75" align="center"><%=RS("Atendimento")%></td>
</tr>
<%
vc1 = RS("RTNO")
vc2 = RS("Nome")
vc3 = RS("Tel")
vc4 = RS("Nacionalidade")
vc5 = RS("DataA")
vc6 = RS("Estado")
vc7 = RS("Atendimento")
vc8 = RS("DataF")
cmd.CommandText="insert into gaji (RTNO,Nome,Tel,Nacionalidade,DataA,Estado,Atendimento,DataF) values (RTNO,Nome,Tel,Nacionalidade,DataA,Estado,Atendimento,DataF)"
Cmd.Execute quant,Array(vc1,vc2,vc3,vc4,vc5,vc6,vc7,vc8)
RS.MoveNext
Loop
%>
</table>
<%
'// EXIBIMOS A QUANTIDADE DE REGISTROS ENCONTRADOS
'response.write campos
'// FECHAMOS E DESCONECTAMOS O RECORDSET E A CONEXÃO UTILIZADA
RS.Close
Set RS = Nothing
Conn.Close
Set Conn = Nothing
%>
<%set Cmd = nothing%>
PS:. Basta validar o campo RTNO.
já tentei com um If VC1 = RS("RTNO") then response.write "processo " & VC1 & "duplicado" else --> inser na bd end if
mas insere-me na mesma dados duplicados.
Se alguém me puder ajudar ficaria muito grato.
cumprimentos
Link to comment
Share on other sites
3 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.