estanislau Posted April 10, 2012 at 09:55 PM Report #448472 Posted April 10, 2012 at 09:55 PM boas, Estou com um problema no código Set ObjWorkBook = ObjExcel.Workbooks.Open() Tenho um objeto FileUpload1 que recebe o caminho onde está o arquivo, selecionado pelo usuário Dim fileExt As String fileExt = System.IO.Path.GetExtension(FileUpload1.FileName) este objeto ler uma Planilha Excell no servidor (máquina local) funcionou. Ele abre o arquivo corresponde do caminho selecionado. Fazendo um teste de outra máquina ( outro usuário) aparece o seguinte erro: C:\WINDOWS\system32\meuarquivo.xls' não pôde ser localizado. Verifique a ortografia do nome do arquivo e se a sua localização está correta. Se você estiver tentando abrir o arquivo a partir de sua lista de arquivos usados recentemente no menu 'Arquivo', certifique-se de que o arquivo não foi renomeado, movido nem excluído. veja que a mensagem de erro mostra um caminho totalmente diferente do selecionado pelo usuário alguém pode ajudar? Por Favor!! Rechousa Edit: Formação de código
José Lopes Posted April 10, 2012 at 10:33 PM Report #448490 Posted April 10, 2012 at 10:33 PM Não te falta qq coisa aqui? Set ObjWorkBook = ObjExcel.Workbooks.Open("nome_do_ficheiro") ?? Quando te pedirem peixe.... ensina-os a Pescar!!Hum..lálálálá!!
estanislau Posted April 12, 2012 at 02:01 PM Author Report #448765 Posted April 12, 2012 at 02:01 PM Caro José Lopes Realmente faltam várias informações que omiti e atentei me na mensagem de erro, porém vou tentar explicar melhor, veja que o meu código dever faz as seguintes funções: Cria um DataTable chamado Table1 e adiciona algumas colunas como abaixo: Dim Table1 As DataTable 'creating a table Dim Row1 As DataRow 'declaring three rows for the table Dim patrimonio As DataColumn = New DataColumn("patrimonio") 'declaring a column named Name patrimonio.DataType = System.Type.GetType("System.String") 'setting the datatype for the column patrimonio.ReadOnly = False Table1.Columns.Add(patrimonio) 'adding the column to table Dim NOPLACA As DataColumn = New DataColumn("NOPLACA") NOPLACA.DataType = System.Type.GetType("System.String") Table1.Columns.Add(NOPLACA) Dim CDCOMBU As DataColumn = New DataColumn("CDCOMBU") CDCOMBU.DataType = System.Type.GetType("System.String") Table1.Columns.Add(CDCOMBU) Em seguida Através de um OleDbDataReader busco informações em meu banco de dados e jogos estas informações em outro DataTable como abaixo; 'define o dataadapter e o datatable Dim da1 As OleDbDataReader Dim dt As New DataTable Dim cmdBc As New System.Data.OleDb.OleDbCommand() cmdBc.Connection = con cmdBc.CommandText = "SELECT campo FROM minhatabela Dim dsExcel As New DataSet Dim daExcel As New OleDbDataAdapter(cmdBc) daExcel.Fill(dsExcel) daExcel.FillSchema(dsExcel, SchemaType.Source) Em seguida pego o caminho da planilha que devo ler para comparar com os dados do meu Bco de Dados jogando as informações num objeto Excel.ApplicationClass If FileUpload1.HasFile Then Dim fileExt As String fileExt = System.IO.Path.GetExtension(FileUpload1.FileName) Dim varimg As String = System.IO.Path.GetFullPath(FileUpload1.PostedFile.FileName) Dim strSource1 As String = Me.FileUpload1.PostedFile.FileName Dim conn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" + strSource1 + ";" & _ "Extended Properties=" & Chr(34) & "Excel 8.0;HDR=Yes" & Chr(34)) Dim excel As New Excel.ApplicationClass Dim row As Integer Dim contLinhaBranco As Integer = 0 'conexão com mde Dim varcodigo As String = cboSeccional.SelectedValue 'variaveis para altera placa (varNumeral;varComb) Dim varNumeral As String Dim varComb As String Dim controle As Integer = 0 excel.Workbooks.Open(varimg) row = 2 Dim escreve As String = String.Empty E por fim faço as comparações necessarias na planilha e no meu DataTable conforme abaixo: While contLinhaBranco <= 15 With excel If Trim(CStr(excel.Range("A" & row).Value)) <> "" Or Trim(CStr(excel.Range("B" & row).Value)) <> "" Then If row > 8 Then varPlaca = CStr(.Range("A" & row).Value()) If Len(varPlaca) > 7 Then Dim registros1() As DataRow = dsExcel.Tables(0).Select("NOPLACA='" & varPlaca & "'") For Each registro As DataRow In registros1 'Comando de intruçoes Next If registros1.Length = 0 Then 'PLACA NÃO ENCONTRADA Row1 = Table1.NewRow() Row1.Item("patrimonio") = " " Row1.Item("NOPLACA") = varPlaca Row1.Item("CDCOMBU") = "PLACA NÃO ENCONTRADA" Table1.Rows.Add(Row1) End If End With End While Como havia dito no Servidor funciona bem em outra máquina da rede dá aquela mensagem de erro, se houver uma forma melhor de fazer isto eu agradeço a ajuda Rechousa Edit: Formatação de código
Rechousa Posted April 13, 2012 at 10:14 PM Report #449078 Posted April 13, 2012 at 10:14 PM Olá, Duas coisas: 1) Tenta formatar o código. Para quem lê, fica muito mais fácil de perceber o teu problema, do que ter texto e código tudo misturado. 2) As máquinas têm características semelhantes? Uma não será 32 bits e a outra 64? Pedro Martins Sharing is Knowledge! http://www.linkedin.com/in/rechousa
José Lopes Posted April 13, 2012 at 10:19 PM Report #449082 Posted April 13, 2012 at 10:19 PM Não será uma questão de permissões???? Quando te pedirem peixe.... ensina-os a Pescar!!Hum..lálálálá!!
estanislau Posted April 16, 2012 at 02:37 PM Author Report #449425 Posted April 16, 2012 at 02:37 PM Olá Rechousa e José Lopes Seguirei, na próxima vez, tuas recomendações e as agradeço, porém informo que as máquinas têm características semelhantes sim, são de 32 bits, porém quando José Lopes informa sobre a questão das permissões: informo que o usuário está com acesso normal à pasta compartilhada, estive fazendo algumas permissões de pasta conforme orientação deste sítio http://support.microsoft.com/kb/207574/pt-br mas ainda continuo com o problema já fiz estas configurações no servido e no usuário e ainda não encontro uma solução, se vocês tiverem mais alguma dicas meus agradecimentos antecipados Sds.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now